【问题标题】:Kafka on Masstransit卡夫卡在地铁上
【发布时间】:2021-08-25 06:45:12
【问题描述】:

我正在研究在我们的信息系统上使用 Kafka 和 Masstransit 的可能性。 Masstransit 文档说可以使用 Kafka,但作为 Rider;由于传输的使用是强制性的,我们必须使用其他工具(如 ActiveMQ、RabbitMQ)以及 Kafka 和 Masstransit。

什么是 Kafka 不能做的传输,阻止了 Kafka 的独占使用?

【问题讨论】:

  • 这与您之前的帖子有何不同?
  • @OneCricketeer,在这篇文章中,我假设我的先例问题过于模糊,所以我专注于公共交通,而不是全球的 Saga;但如果你问我这个问题,这听起来你明白我的问题是什么。精度欠缺见谅,但识别不明确的问题不易处理

标签: apache-kafka masstransit saga


【解决方案1】:

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

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

您仍然可以将 Kafka 与 MassTransit 一起使用,但您需要使用内存中的传输来配置和启动总线。

【讨论】:

  • 感谢您的回答;你说 Kafka 不支持竞争消费者……但它在消费者组内支持,不是吗?
  • 他们没有竞争。一个组中的每个分区不能有多个消费者,因此不存在“竞争”。
  • 确实,所以可能是Kafka的限制
  • @user1958187 当然,如果“限制”是指“强大的设计选择”。竞争消费者模式破坏了消息排序。
猜你喜欢
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
相关资源
最近更新 更多