【问题标题】:Using Kafka without RabbitMQ在没有 RabbitMQ 的情况下使用 Kafka
【发布时间】:2020-10-11 10:00:18
【问题描述】:

我正在使用没有 RabbitMQ 的 Kafka 测试 MassTransit

我需要IBusControl,我可以使用bus.UsingInMemory()吗? 用于 Kafka ITopicProducers 是否安全? 调度/sagas 等功能是否适用于 Kafka 或 InMemory 总线?

【问题讨论】:

    标签: masstransit


    【解决方案1】:

    您可以在 Kafka 中使用内存总线,但要意识到内存总线并不耐用。您想要使用它的唯一原因是您想要在不使用随附代理的情况下使用/生成 Kafka 消息。

    Sagas 与 Kafka 配合得很好,因为 sagas 是一种消费者。

    Kafka 不支持调度,因为它不是代理。不建议在单元测试之外使用内存调度。

    【讨论】:

    • 我的意思是,我可以将消息安排到 Kafka。例如使用石英和向 kafka 发送延迟消息
    • 不,你不能。您可以将消息安排给基于代理的消费者,然后该消费者可以向 Kafka 主题生成消息,但您不能使用 MassTransit 从石英直接发送到 Kafka。
    • 是否有可能的功能要求或设计限制?
    • 这是设计使然,我不打算更改任何内容。
    • 我在 Kafka 中使用 sagas 时发现了一个问题。 Sagas 可以在超时时安排一些事情(示例),但安排是与公共汽车一起工作的,而不是与乘客一起工作的。所以在内存总线和Kafka中使用有点危险
    猜你喜欢
    • 2022-09-24
    • 2013-01-15
    • 2017-07-23
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2019-06-16
    相关资源
    最近更新 更多