本文由网友【Sky.楚子航】投稿
.NET Aspire 是微软推出的一个技术栈,旨在简化云原生应用的开发和管理。以下是关于.NET Aspire 的详细介绍:
定义与目的:
特点与优势:
与.NET 的关系:
发布与可用性:
总的来说,.NET Aspire 是微软为简化云原生应用开发和管理而推出的一项重要技术,它充分利用了.NET 平台的优势,为开发者提供了一种高效、统一的解决方案。
我从 preview1 - preview6(目前最新 2024/5/1) 一直都有使用,在第一版的时候我就用它放入了我的一个微服务中(https://gitee.com/SkyNingDuan/PublicActivityServices.git),一直迭代更新。
在其中,我一直使用外部 RabbitMQ 的方式给我的微服务传递消息(用的是Zack.EventBus),但是它一直有直接通过 Aspire 方式创建 RabbitMQ 容器在你的项目中使用, 我一直想着用杨中科老师的框架为指导,开发一个在 Aspire 环境下的 EventBus, 但是一直拖着(已经有现成的了,就一直不想走出舒适区)最后经过不断的自我抗争,simpleUseAspireRabbitmq 第一版开发好了,功能比较简单,也比较好用,如果大家热情高的话, 后面再加便是。欢迎大家拥抱新技术,有任何问题都可以提 issue 和我互动,源代码地址https://github.com/skyDuanXianBing/SimpleUseAspireRabbitMQ.git ,NuGet 名称:SimpleUseAspireRabbitMQ) (目前由于 Aspire 也是处于预览版,所以这个也是预览版,后面有任何改进也会跟进的)。
在 aspire.host 中安装Aspire.Hosting.RabbitMQ
包,在program.cs
中创建RabbitMQ
容器,并且在你要使用 RabbitMQ 的项目后 WithReference
RabbitMQ
容器:
在你要使用RabbitMQ
项目的 program.cs 中分别加入builder.EventConfiguration("rabbitmq", "myexchange");
(第一个参数是RabbitMQ
容器名称,第二是交换机名称),app.RegisterRabbitmqEvent();
来注册服务:
使用IEventBus
发送消息,目前仅支持 string/泛型数据(都会转换成 json,后面在反序列化),publish 第一个参数是队列名称:
一定要定义在网站项目中(因为是通过反射网站项目拿到全部的处理类),继承IEventJsonHandler
/IEventStringHandler
分别实现就行。
一定要在处理类上贴 [event("XXX")]
, 这个 attribute 用来指示接收哪个队列信息:
使用就是这么简单,欢迎留言交流。