当前位置: 首页 > 知识库问答 >
问题:

broker失败时集群ActiveMQ Artemis和生产者/消费者负载平衡配置

经佐
2023-03-14
<connectors>
  <connector name="broker1-connector">tcp://myhost1:61616</connector>
  <connector name="broker2-connector">tcp://myhost2:62616</connector>
</connectors>

<cluster-connections>
  <cluster-connection name="myhost1-cluster">
    <connector-ref>broker1-connector</connector-ref>
    <retry-interval>500</retry-interval>
    <use-duplicate-detection>true</use-duplicate-detection>
    <message-load-balancing>ON_DEMAND</message-load-balancing>
    <max-hops>1</max-hops>
    <static-connectors>
      <connector-ref>broker2-connector</connector-ref>
    </static-connectors>
  </cluster-connection>
</cluster-connections>

这会影响到最初连接到broker1的消费者,我不确定是否还有某种方法/配置使他们在这些代理之间透明地跳转,或者我是否需要创建两个消费者(实际上其中一个是空闲的),每个消费者都针对相应的代理?

共有1个答案

姚淳
2023-03-14

代理没有办法告诉客户机它应该连接到加入集群的另一个节点。

我的建议是将HA与failback一起使用,这样当一个节点失败时,连接到该节点的所有客户端都将故障转移到备份,然后当原始节点回来时,所有客户端都将故障转移到原始节点。

您可能还会发现实际上并不需要一个由2个代理组成的集群。许多用户从来不执行必要的性能测试,以确认集群是必要的。他们只是假设集群是必要的。这样的假设会不必要地使平台的体系结构复杂化,并浪费宝贵的资源。ActiveMQ Artemis的性能相当不错。在某些用例中,单个节点每秒可以处理数百万条消息。

 类似资料:
  • 我有一个生产者/消费者模式,如下所示 固定数量的生成器线程,每个线程写入它们自己的BlockingQueue,通过执行器调用 单个使用者线程,读取生产者线程 每个生产者都在运行一个数据库查询,并将结果写入其队列。消费者轮询所有生产者队列。目前,如果出现数据库错误,生产者线程就会死掉,然后消费者就会永远停留在产品队列中等待更多的结果。 我应该如何构造它来正确处理catch错误?

  • 本教程演示了如何发送和接收来自Spring Kafka的消息。 首先创建一个能够发送消息给Kafka主题的Spring Kafka Producer。 接下来,我们创建一个Spring Kafka Consumer,它可以收听发送给Kafka主题的消息。使用适当的键/值序列化器和解串器来配置它们。 最后用一个简单的Spring Boot应用程序演示应用程序。 下载并安装Apache Kafka 要

  • 本文向大家介绍Kafka 消费者负载均衡策略相关面试题,主要包含被问及Kafka 消费者负载均衡策略时的应答技巧和注意事项,需要的朋友参考一下 一个消费者组中的一个分片对应一个消费者成员,他能保证每个消费者成员都能访问,如 果组中成员太多会有空闲的成员

  • 主要内容:1 doRebalance执行重平衡,2 RebalanceImpl#doRebalance执行重平衡,3 rebalanceByTopic根据topic执行重平衡,4 findConsumerIdList查找客户端id集合,4.1 findBrokerAddrByTopic随机查找broker,4.2 getConsumerIdListByGroup获取Group所有ConsumerId集合,5 allocate分配消息队列,,,,,,,,,,,,,,基于RocketMQ relea

  • 我正在创建一个系统,其中前端服务将消息推送到Kafka请求主题,并为一些下游后端消费者(实际上是一个最终推送回Kafka的复杂系统)监听另一个响应主题,以处理请求消息并最终推进到“回应”话题。 我试图找出最优雅的方法来确保消费者监听适当的分区并收到响应,并且后端推送到前端消费者正在监听的分区。我们总是需要确保响应到达产生初始消息的同一个消费者。 到目前为止,我有两种解决方案,但都不是特别令人满意的

  • 我已经对JMS负载平衡进行了很长时间的研究。我们可以为负载平衡JMS消息创建多生产者和多消费者。但我想了解,我们如何在一个生产者和一个消费者之间负载平衡JMS消息。我不能像ApacheCamel那样在我的项目中添加更多依赖项。 这是我的 JmsConfig 类,我无法在其中进行重大的配置更改,例如引入更多 JMS 模板或更多连接工厂。我的制片人如下所示 我的消费者如下所示: