假设我在一个集群中有3个ActiveMQ Artemis代理:
在给定的时间点,我有每个经纪人的消费者数量:
让我们假设在这个给定的时间点,有70条消息要发送到集群中的一个队列。
我们期望集群完成负载平衡,以便Broker_01将接收50条消息,Broker_0210条消息,Broker_0310条消息,但目前我们正在经历70条消息通过所有3个代理随机分发。
是否有任何配置可以根据每个代理中的消费者数量分发消息?
我刚刚读了留档。所以,据我所知,如果我们配置集群连接,ActiveMQ会基于循环进行负载平衡。我们的broker.xml如下所示:
<cluster-connections>
<cluster-connection name="my-cluster">
<connector-ref>amq-v01_connector</connector-ref>
<min-large-message-size>524288</min-large-message-size>
<call-timeout>120000</call-timeout>
<retry-interval>500</retry-interval>
<retry-interval-multiplier>1.5</retry-interval-multiplier>
<max-retry-interval>2000</max-retry-interval>
<use-duplicate-detection>true</use-duplicate-detection>
<message-load-balancing>ON_DEMAND</message-load-balancing>
<max-hops>1</max-hops>
<notification-interval>800</notification-interval>
<notification-attempts>2</notification-attempts>
<static-connectors>
<connector-ref>amq-v02_connector</connector-ref>
</static-connectors>
</cluster-connection>
</cluster-connections>
此外,队列的地址设置如下所示:
<address-setting match="MyQueue">
<address-full-policy>BLOCK</address-full-policy>
<max-size-bytes>50Mb</max-size-bytes>
</address-setting>
我是否遗漏了一些东西,以便进行负载平衡?
下一点将如文档中所述,负载平衡总是基于循环进行的,不可能基于每个节点中的使用者数量进行负载平衡的配置。
我假设我需要客户端连接负载平衡,因为我们希望根据每个代理中的消费者数量对到达3个代理的消息进行负载平衡。正如文档中所述,我们可以使用5种开箱即用的策略(循环、第一元素等)。此外,我们还可以通过实施连接负载平衡策略
来实施我们自己的策略。假设我想实施我自己的政策,那么根据消费者的数量,我的想法是什么?
没有现成的方法让制作人知道每个代理上有多少消费者,然后将消息发送给相应的代理。
您可以实施自己的连接负载平衡策略
。然而,为了确定队列负载平衡策略实现中存在多少消费者,需要知道集群中所有代理的URL以及向其发送消息的队列的名称,并且无法提供这些信息。连接负载平衡策略
界面非常简单。
如果每个节点上的消息太少,我建议您首先重新考虑对3节点集群的需求。在某些用例中,单个代理可以处理数百万条消息的吞吐量。如果每个节点处理的消息少于50条,那么您可能根本不需要集群。
我们面临着 ActiveMQ - M 集合负载平衡的几个问题。有人可以帮忙吗?以下是我们的设置 MCO在故障转移池-Broker1中配置了两个ActiveMQ代理 经纪人1 问题1:MCO客户端在broker1和broker2之间的负载平衡和连接不相等。700 MCO连接到broker1,而只有100 MCO连接至broker2。我们是否缺少此负载平衡的任何属性? 问题 2: 当我们添加新的代理(
问题内容: 好的,因此我得到了一个非常罕见的负载均衡PHP网站的独特场景。令人讨厌的是-它曾经不是负载均衡的。现在我们开始遇到问题了… 当前唯一的问题是PHP会话。自然,起初没有人想到此问题,因此PHP会话配置保留为默认设置。因此,两个服务器都有自己的少量会话文件存储,而麻烦的是将下一个请求引发到另一个服务器的用户,因为该用户没有在第一个服务器上创建的会话。 现在,我一直在阅读有关如何解决这种情况
我安装了一个kubernetes集群。我想为我的一个微服务使用外部数据库(在我的集群之外),但这个外部数据库被设置为集群,没有自己的负载均衡器。 有没有办法创建一个内部负载平衡器服务,让kubernetes始终将微服务定向到正在运行的实例? 我看到您可以设置loadbalancer类型的服务,我如何使用它?我尝试创建它,但我看到loadbalancer服务是用NodePort创建的。它可以在没有节
包含负载均衡集群及节点。 云联壹云 平台提供的本地IDC的负载均衡功能需要管理员先部署负载均衡集群和LBAgent转发节点。 云联壹云 支持负载均衡多集群功能,用户可根据需求配置负载均衡集群以及集群下的转发节点LBAgent,部署集群和转发节点后才可以部署负载均衡实例等。 集群为一组LBAgent转发节点的集合,同一时刻集群中只有一个转发节点处于MASTER,用于监控负载监控实例配置的IP地址和端
我必须手动在MS Azure中创建Kubernetes群集,而不是使用AKS。因此: > 我在一个可用性集中创建了2个VM:一个用于k8s master,第二个用于k8s节点。 我创建了外部负载均衡器并将2个VM添加到后端池。 我使用kubes祈祷创建了k8s集群。 我创建了部署和负载均衡器服务: 但LoadBalancer服务外部IP始终处于挂起状态: 此外,telnet azure\u loa
我在3个节点上进行了压力测试,但只有一个CPU很高,其他的都很低。Ignite集群使用TCP发现,我有一个jdbc连接,例如:jdbc:Ignite:Thin://172.16.14.15、172.16.14.16、172.16.14.17/