【发布时间】:2021-04-25 15:15:02
【问题描述】:
我目前正在使用the ABP framework 开发微服务,我想实现RabbitMQ 以实现分布式服务之间的内部通信。我会谈谈我做过的事情和我无法解决的问题。
我首先使用abp new LA -t app --no-ui 制作了 LA 和 LB 的两个项目。它们运行在不同的端口,分别是 localhost:5001 和 localhost:5002。我按照说明配置 RabbitMQ 并向 LA.Web 文件夹中的appsetting.json 添加了一些行(很抱歉没有直接在这里编写我的代码,因为它的格式很奇怪)。 LA.Web 中 LAWebModule.cs 的更改显示为 。这是位于 Application.Contracts 文件夹中的PriceChangeEto。 PublishAsync() 和 DistributedEventHandler 在 Application 的 App 服务类中。我想创建一个首先触发事件的接口,然后订阅该事件的那些服务可以处理该事件以通过 EF Core 更新存储在 AggregateRoot 实体中的信息。
当我打开 RabbitMQ 管理页面 (localhost:15672) 并且它们已成功连接。 RabbitMQ Management Page 表明 PublishAsync() 发布的事件未被确认。
所以我的问题是
- 为什么 PublishAsync() 未得到确认,该方法的执行以 Http 204 响应。
- 如果事件被触发,EventHandler 应该更新书价,但事实并非如此。
谁能帮我解决这个问题,我下一步该怎么做才能在 Abp 框架中实现 RabbitMQ。提前致谢。
【问题讨论】:
-
最后。我找到了问题,请参阅更多详细信息 [github.com/abpframework/abp/issues/7104](github.com/abpframework/abp/issues/7104)。他们将来会解决这个错误,只需简单地添加“DispatchConsumerAsync”:“true”。
标签: .net asp.net-core rabbitmq microservices abp