轻松使用Aspire rabbitmq framework

news/2024/10/15 16:21:59

轻松使用aspire rabbitmq

创作初衷

aspire 是微软基金会推出的新一代云原生编排框架,具体请看 https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview
我从preview1 - preview6(目前最新 2024/5/1) 一直都有使用,在第一版的时候我就用它放入了我的一个微服务中(https://gitee.com/SkyNingDuan/PublicActivityServices.git),一直和它迭代.
在其中我一直使用外部rabbitmq的方式给我的微服务传递消息(用的是YZK.eventbus),但是它一直有直接通过aspire方式创建rabbitmq 容器在你的项目中使用,我一直想着用杨中科老师的框架为指导,开发一个在aspire环境下的eventbus,但是一直拖着(已经有现成的了,就一直不想走出舒适区)最后经过不断的自我抗争,simpleUseAspireRabbitmq第一版开发好了,功能比较简单,也比较简单好用,如果大家热情高的话。后面再加便是。欢迎大家拥抱新技术,有任何问题都可以提issue和我互动,源代码地址https://github.com/skyDuanXianBing/SimpleUseAspireRabbitMQ.git ,nuget名称:SimpleUseAspireRabbitMQ (目前由于aspire 也是处于预览版,所以这个也是预览版,后面有任何改进也会跟进的)

下面是使用教程

1,创建你的aspire项目,在aspire.host中安装Aspire.Hosting.RabbitMQ 包,在program.cs中创建rabbitmq容器,并且 在你要使用rabbitmq的项目后 withreference rabbitmq容器

2,在你要使用rabbitmq项目的program.cs中分别加入builder.EventConfiguration("rabbitmq", "myexchange");(第一个参数是rabbitmq容器名称,第二是交换机名称)app.UseHttpsRedirection();来注册服务

3,使用ieventbus发送消息 目前仅支持 string/泛型 数据(都会转换成json,后面在反序列化)

publish第一个参数是队列名称

4,定义处理类,一定要定义在网站项目中(因为是通过反射网站项目拿到全部的处理类)继承IEventJsonHandler/IEventStringHandler 分别实现就行

一定要在处理类上贴 [event("")] 这个attribute 用来指示接收哪个队列信息


5,完美接收消息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26475.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

leetcode算法热题--盛最多水的容器

题目 给定一个长度为n的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例 1:输入:[1,8,6,2,5,4,8,3,7] 输…

在身份认证后建立用户对象ICurrentUser

app.UseAuthentication(); 这个中间件添加后,他会为HttpContext.User设置一个ClaimsPrincipal对象。里面有身份认证token里面携带的信息。 其访问方式如下HttpContext.User.FindFirstValue("自定义字段")我们可以创建一个服务,方便在应用中使用用户信息。 因为在服…

CMake极速入门

快速上手基本的CMake引言 还在手写晦涩难懂的Makefile文件吗?现如今,主流的c++项目都采取CMake作为项目构建工具,CMake可以跨平台运行,而且语法相对Makefile而言直观很多,是时候将Makefile扫进垃圾堆了。 Hello, World! 首先先以单个源文件项目为讲解,新建一个main.cpp文…

《Node.js+Vue.js+MangoDB全栈开发实战》已出版

《Node.js+Vue.js+MangoDB全栈开发实战》 随书源码下载地址: 链接:https://pan.baidu.com/s/1DQYgPZLmtJCIuDXs8gub_w?pwd=1127 提取码:1127 课件下载地址: 链接:https://pan.baidu.com/s/1M36y1xu-gIUidDxw38GlBg 提取码:1988 随书目录 目 录 第1章 Node.js和TypeS…

for reading (没有那个文件或目录)en file `

001、奇怪的报错: for reading (没有那个文件或目录)en file `[sy20223040796@admin1 test]$ ls ## 测试文件及命令 test.bed test.sh [sy20223040796@admin1 test]$ cat test.bed ## 测试文件 1 5400001 5400002 1 5425001 5425002 1 …

go学习03

路由分组v1 := router.Group("/v1"){v1.POST("/login", loginEndpoint)v1.POST("/submit", submitEndpoint)v1.POST("/read", readEndpoint)}v2 := router.Group("/v2"){v2.POST("/login", loginEndpoint)v2.POST…

推荐3款程序员常用的画图工具

前言 经常看到有小伙伴在DotNetGuide技术社区微信交流群里问:有什么好用的画图工具推荐的?今天大姚给大家推荐3款程序员日常工作中常用的画图工具,大家可以根据自己的需求选择。 ProcessOn ProcessOn是一款专业强大在线作图工具,提供AI生成思维导图流程图,支持思维导图、流…

kubernetes(k8s)

应用程序部署的演变过程 在部署应用程序的方式上,主要经历了三个时代传统部署互联网早期,会直接将应用程序部署在物理机上 优点: 简单,不需要其他技术的参与 缺点: 不能为应用程序定义资源使用边界,很难合理的分配计算资源,而且程序之间容易产生影响虚拟化部署可以在一台…