【问题标题】:Send message to multiple microservice (only one instance of them)向多个微服务发送消息(仅其中一个实例)
【发布时间】:2020-03-20 18:57:48
【问题描述】:

我使用弹簧靴。 我们有一些微服务,每个微服务都有很多实例。 我正在考虑使用像 ibm mq 这样的消息传递软件。

我看到有一个启动器。 https://github.com/ibm-messaging/mq-jms-spring

如果微服务 x 发送了一个事件 x.created。

我希望 y 和 z 得到它...但只有一个 y 和 z 的实例。

我开始了,但我认为为此我需要将消息发送到两个队列

【问题讨论】:

  • 我们将 Kafka 用于相同目的。而且Kafka有分组机制。您可以分别对 y 实例和 z 实例进行分组。所以这种方式只有一次 y 和 z 的实例得到消息。也许ibm mq也有同样的东西
  • 您可以使用 MQ 的 pub sub 来做到这一点 - 您可以让发布者 x 发布到主题名称 X 并且订阅者 y 和 z 获得订阅?如果只有两个订阅者,则不需要让它变得更复杂。 JMS pub sub here 的示例
  • 只有在只有一个 y 或 z 的实例时才起作用....因为 y 和 z 的实例很多,我不希望所有人都收到它...
  • 嗨,老线程,但有人找到解决方案了吗?同一消费者的多个实例,但只有一个从主题而非队列接收消息。

标签: spring-boot ibm-mq


【解决方案1】:

Kafka 似乎是这里可用的选项之一。

当您通过生产者向 kafka-topic 发送消息时,订阅特定主题的所有消费者组都将收到该消息,并且该消费者组中可以有任意数量的消费者,并且只有一个消费者会收到该消息。

【讨论】:

    猜你喜欢
    • 2017-06-12
    • 2021-01-14
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 2021-03-22
    相关资源
    最近更新 更多