卡夫卡论公共交通

use*_*187 4 masstransit saga apache-kafka

我正在研究在我们的信息系统上使用 Kafka 和Masstransit的可能性。公共交通文档称 Kafka 可以使用,但作为Rider;由于必须使用传输,因此除了 Kafka 和 Masstransit 之外,我们还必须使用其他工具(如 ActiveMQ、RabbitMQ)。

哪些传输功能是 Kafka 无法完成的,从而阻止了 Kafka 的独占使用?

Ale*_*rev 8

MassTransit 的设计考虑到了竞争消费者的发布-订阅模式,这是使用消息代理时的默认模式。

正如文档中提到的,引入了 Riders,作为事件流和发布-订阅之间的网关。因此,乘客的主要目的是支持当您需要消费来自乘客的消息并将其发布到公交车时的场景。甚至生产者对于骑手来说也是可选的,并且它们是特定于实现的。由于像 Kafka 这样的事件流基础设施甚至不支持竞争消费者,因此制作 Kafka 传输之类的东西没有什么意义,因为它在 MassTransit 概念和 Kafka 所做的事情之间引入了严重的阻抗不匹配。

您仍然只能将 Kafka 与 MassTransit 结合使用,但需要使用内存传输来配置和启动总线。

  • @user1958187当然,如果“限制”你的意思是“强大的设计选择”。竞争消费者模式破坏了消息排序。 (2认同)