【发布时间】:2021-11-06 09:44:31
【问题描述】:
最近我尝试在我们的微服务生态系统中使用MassTransit。
根据 MassTransit 词汇和文件,我的理解是:
- 发布:将消息发送给 1 个或多个订阅者(Pub/Sub 模式)以传播消息。
- 发送:用于发送消息,如发布,发送消息,但它只用于一个接收者。与 Publish 的主要区别在于,在 Send 中,如果您的目的地没有收到消息,它将返回异常。
- 请求:使用请求/回复模式来发送消息并在不同的通道中获得响应,以便能够从接收方获取响应值。
现在,我的问题是根据微服务的概念,遵循事件驱动的设计,我们使用 Publish 将消息(事件)传播到整个生态系统。但是这里 Send 的具体用法(用例)是什么?只是为了在接收者不存在的情况下获得异常?
我的下一个问题是,在微服务生态系统中同时使用 Publish、Send 和 Requests 是否是一种好方法?比如发布传播事件,发送命令(即发即弃),以及从目标获取响应的请求。
-- 更新 我还找到了here,Chris Patterson 清除了很多东西。这对我也有很大帮助。
【问题讨论】:
-
可能只是read this answer,因为我的回复差不多。
标签: microservices domain-driven-design masstransit event-driven-design