重庆网站设计公司网站制作,中山品牌网站设计,做网站美工赚钱吗,江苏工程造价信息网官网[https://docs.abp.io/zh-Hans/abp/latest/Distributed-Event-Bus-RabbitMQ-Integration](ABP vNext官方文档链接)#xff0c;基本使用可直接阅读官方文档#xff0c;云怀不重复造轮子#xff0c;只做官方未提到但重要的说明关键配置说明关键配置类#xff1a;AbpRabbitMqE… [https://docs.abp.io/zh-Hans/abp/latest/Distributed-Event-Bus-RabbitMQ-Integration](ABP vNext官方文档链接)基本使用可直接阅读官方文档云怀不重复造轮子只做官方未提到但重要的说明关键配置说明关键配置类AbpRabbitMqEventBusOptions.cs用于配置连接名、队列名即要监听的队列名、交换机名;关键配置类AbpRabbitMqOptions即原始RabbitMq针对.NET的连接配置类RabbitMqConnections.cs关键配置——appsettings.json本地连接配置{RabbitMQ: {EventBus: {ClientName: MyClientName,ExchangeName: MyExchangeName}}
}
远程主机配置集群用逗号分隔{RabbitMQ: {Connections: {Default: {HostName: 192.168.1.101:5701,ip2:port2,ip3:port3,UserName: yunhuai,Password: yunhuai,VirtualHost: /test}},EventBus: {ClientName: MsDemo_AServer,ExchangeName: MsDemo}}
}
多主机若应用程序有多个主机指定其中之一为EventBus{RabbitMQ: {Connections: {Default: {HostName: 123.123.123.123},SecondConnection: {HostName: 321.321.321.321}},EventBus: {ClientName: MyClientName,ExchangeName: MyExchangeName,ConnectionName: SecondConnection}}
}
ABP vNext 底层限制交换机只支持direct路由原RabbitMQ可配置交换机和队列强行持久化原RabbitMQ可配置当所有绑定队列都不在了交换机也强制可不自动删除原RabbitMQ可配置强制不可申明排他性队列排他性队列特征只对首次申明队列的连接可见并会在该连接断开时自动删除原RabbitMQ可配置当所有消费者断开后强制不会删除该队列原RabbitMQ可配置备注以上皆因源码写死并非RabbitMQ不支持源码如下注意事项A服务》B服务》C服务传输对象1与传输对象2不能是同一个命名空间下的同一个类名这是由于ABP vNext EventBus底层将完整类名作为路由键进行转发如果两个对象一致那么B将进入死循环附带C也进入异常A、B、C之间应该共用同一个交换机即配置的ExChangeName一致而队列名不一致不存在自己指定自己作为生产者的队列的名字所以必须先启动队列消费者创建了相关队列队列生产者发出Message才有效果即启动顺序CBA