轻松使用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
一定要在处理类上贴 [event("")] 这个attribute 用来指示接收哪个队列信息
5,完美接收消息