【问题标题】:Solace - Load-Balancing chunked messagesSolace - 负载平衡分块消息
【发布时间】:2018-03-20 04:20:11
【问题描述】:

我希望将 Solace 保证消息传递与负载平衡的消费者一起使用。

目前,如果我使用具有非独占访问类型的队列并且有多个消费者,每个消费者将获得消息循环,如果消费者死亡,其未确认的消息将转发给另一个消费者。

这是我需要的功能,但是由于消息负载的大小不同,我可能会超出限制,因此需要实现分块。

现在的问题是我无法保证单个消息的所有分块消息都由同一个消费者处理,以便它可以重建原始消息并在构建后进行适当的消息确认。

有没有办法通过 Solace 实现这一目标。

在 Kafka 中,我可以使用原始消息的分区键来确保分块消息路由到相同的消费者并使用复杂的提交同步逻辑。

【问题讨论】:

    标签: solace


    【解决方案1】:

    可以使用 Solace 中提供的功能在您的应用程序中实现您自己的消息分块逻辑。

    这可以通过在 Solace 中使用选择器来实现。出口选择器使客户端应用程序能够指定他们有兴趣接收哪些消息,由消息的标头字段和属性值确定。按照这个逻辑,如果一条消息需要被分块,您可以将相同的标识符属性添加到消息中的所有块中。客户将使用不同的选择器绑定到非独占队列,这样每个消费者将只接收具有一种标识符的消息。

    除了选择器之外,另一个需要考虑的特性是事务。您可以使用消息的开始块启动事务,并且仅在收到消息中的最后一个块时提交。这样,如果消费者死亡,事务将回滚,消息中的所有块都将返回到队列中。

    【讨论】:

      猜你喜欢
      • 2013-03-23
      • 1970-01-01
      • 2017-09-21
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2012-09-13
      • 1970-01-01
      相关资源
      最近更新 更多