Yah*_*ein 3 c# masstransit saga microservices automatonymous
我试图了解服务之间的消息传递中使用的不同方法。
假设我们有一个场景,我需要第一个服务来通知另一个用户已请求创建产品,第二个服务应收到此消息,创建一个产品,然后响应告诉第一个服务一个产品已被使用。创建。
我认为命令和请求/响应一起适合这种情况,因为第一个服务将需要处理另一个特定的服务并等待反馈。
我的理解是:
事件与命令:
大事记:
命令:
请求/响应与发布/订阅:
请求/响应:
在请求/响应中,第一个服务请求对方执行一个操作,并等待直到后面的响应返回为止。
发布/订阅:
第一服务仅发布消息并继续处理,而无需等待反馈或响应。
现在,我开始使用RabbitMQ和Masstransit saga(Masstransit.Automatonymous)一起设计消息传递系统,该事件似乎使用发布/订阅方法跟随事件。
我的问题是:
如何在发布中使用命令或在请求/响应中使用事件?
我的理解正确吗?可以将sagas与请求/响应一起使用吗?
一般来说,您的理解是正确的。但是,我也会在这里总结一下:
具有自动名称的MassTransit sagas支持任何类型的消息处理。您需要映射佐贺消耗的所有消息作为状态机事件,但是这些消息既可以是命令也可以是事件-从技术上讲,这并不重要。Sagas可以发布和发送消息,也可以发送请求并等待答复。
当您对发布命令以及使用事件进行请求响应提出疑问时。从技术上讲,MassTransit在消息类型上没有区别。您发布的所有内容都是一个事件。您发送的东西可以是命令,也可以是其他东西,但这不是事件。使用请求响应时,必须发送到特定端点,因此绝对不是事件。
| 归档时间: |
|
| 查看次数: |
836 次 |
| 最近记录: |