【发布时间】:2021-09-27 07:09:24
【问题描述】:
我正在学习微服务架构并创建了 3 个微服务。每个毫秒都有自己的数据库。
如下所示,
- 商务女士
- 客户女士
- 税收毫秒
我通过在所有微服务中复制Business 表来设计它。每当在 Business ms 中创建新业务时,我想更新 Customers ms 和 Tax ms 中的业务 Id 和 name 以创建参考。
我尝试通过以下方式实现这一目标,
-
托管服务 - 这将注册为业务微服务的一部分,当在业务表中添加新行时,我将该行添加到
System.Threading.Channels。 HostedService 将读取队列,然后调用 Customers ms 和 Tax ms API 来更新 Business Id 和 Name。 -
事件驱动 API - 我还没有实现这一点。想法是让企业女士作为生产者,客户女士和税务女士作为消费者。
实现这一目标的最佳方法是什么?请问有什么想法吗?
【问题讨论】:
-
我的首选方法是让业务服务在创建/编辑/删除时将事件发布到队列,任何其他关心订阅该事件并在收到时处理的服务。干净、一劳永逸,并可扩展到任何未来需要相同功能的服务。
-
在这种情况下,如果我们需要状态返回?消费者是否必须向发布者发送一条表明成功的消息?是这样的吗?
标签: microservices asp.net-core-webapi event-driven-design asp.net-core-hosted-services