【发布时间】:2017-09-15 07:41:52
【问题描述】:
我计划在一个项目中使用微服务架构。选择的技术栈是.NET Core,其中Docker和RabbitMQ作为简单的服务总线,应该可以部署在Linux上。
假设我有一个Payment 服务和一个Order 服务,我希望这些服务中的每一个都公开REST 端点。因此,我想将这两个服务设为.NET Core Web APIs。
但问题是使用RabbitMQ 的服务间通信。每当我得到一个新的order 时,我想使用RabbitMQ 发布一个事件,然后在Payment 服务中监听该事件以执行某些操作(数据库更新)。但由于这些是Web APIs,我认为不可能像我描述的那样收听事件。 (我觉得我可能不得不使用控制台应用程序之类的东西来订阅事件。)
考虑到系统的可扩展性和可扩展性,我想通过最佳实践找到最可行的方法来实现这一目标。
【问题讨论】:
-
ASP.NET Core 应用程序是控制台应用程序。您可以简单地创建一个对象,该对象将在应用程序启动时侦听消息以及 WebAPI 注册..
-
@AndriiLitvinov,感谢您的回复。你能解释一下你的建议吗?
标签: c# asp.net-web-api .net-core microservices rawrabbit