`

ActiveMQ 消费者端的负载平衡

阅读更多
原文 http://www.ibm.com/developerworks/cn/opensource/os-ag-renegade6/

James欣赏的 ActiveMQ 特性之一是可以在消费者端进行负载平衡。消息组是一种不太为人所知的 JMS 可选特性。“它有点儿像 Web 应用程序的负载平衡,但是应用于消息传递,” 他说。假设您将来自 Amazon 站点的订单放进一个队列中,希望尽可能快地处理它们。JMS 提供者会在消费者之间根据负载平衡原则分配这些消息。但是,如果希望按照次序处理消息,就会遇到一个问题:只能使用一个消费者来处理消息,这样才能保证次序的完整性,才能正确地处理订单。

“所以,如果我们的集群有 1,000 个消费者,可以将 JMSXGroupID 字符串添加到每个消息中,表示它属于哪个组,这样就可以维持消息的次序。例如,可以使用 Books 作为 ID。这样就由一个消费者来处理所有图书,而 Electronics 和其他类别的商品仍然进行负载平衡。还可以使用图书的 ISBN 号作为 ID,这样所有 Getting Things Done 图书由一个消费者处理,JMS Essentials 图书由另一个消费者处理。所以,它是一种有亲和性的可定制的负载平衡,可以支持故障转移。如果一个消费者停止工作了,那么另一个消费者会替代它。甚至可以将当前拥有的图书数量缓存在消费者中,因为在整个集群中只有这一个线程处理这种书的订单,所以其他消费者不会修改数据库。所以可以进行超高效率的缓存,避免锁定和争用问题。这是一种对应用程序进行划分,从而使吞吐量最大化的好方法。”
分享到:
评论

相关推荐

    ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

    1. **Virtual Topic**:ActiveMQ的Virtual Topic特性允许创建一个主题,这个主题可以被多个消费者并行消费,实现消息的负载均衡。 2. **Network of Brokers**:在多个broker之间建立网络连接,消息可以自动在broker...

    ActiveMQ高可用+负载均衡集群源码+文档.zip

    在ActiveMQ中,负载均衡可以通过配置多个消费端来实现,每个消费者都可以处理一部分消息,从而分摊系统压力。此外,ActiveMQ还支持使用像HawtIO这样的管理工具来监控和调整集群的负载分配。 在提供的源码和文档中,...

    activemq负载均衡实现.doc

    在 ActiveMQ 集群中,消息消费者可以从任何活跃的经纪人那里接收到消息,因为队列在集群内是共享的。这不仅实现了负载均衡,还提供了冗余,如果一个经纪人失败,其他经纪人可以继续提供服务。 测试代码示例说明了...

    activemq配置组合队列(复制)、负载均衡

    通过调整网络连接器的参数,我们可以控制消息在各个节点间的分布,例如,可以设置`conduitSubscriptions`来决定订阅者是否应该通过网络连接器发送订阅,或者设置`prefetchSize`来调整每个消费者一次能获取的消息数量...

    ActiveMQ高并发处理方案

    本文将详细介绍ActiveMQ在高并发环境下的优化策略,包括异常处理、连接池使用、消费者公平调度以及系统整体扩展等方面。 #### 二、高并发发送消息异常及其解决 ##### 现象描述 当使用多个线程(如10个)以一定频率...

    activeMQ 详细教程与源码(包含消费者与生产者)

    Spring 提供了与 ActiveMQ 集成的便捷方式,使得在 Spring 应用中创建消息生产者和消费者变得简单。 **消息生产者**(Producer)是发送消息的组件,通常在业务处理完成后,将结果或者事件封装为消息发送到消息队列...

    activemq性能与高可用性测试

    * conduitSubscriptions:用于指定消费者是否负载均衡。如果设置为true,则消费者可以负载均衡地消费消息;否则,每个消费者将独立地消费消息。 消息回流 在ActiveMQ中,存在一种有趣的场景,即消息回流。当broker...

    ActiveMQ集群及生产者和消费者Java代码.zip

    1. **ActiveMQ集群**:ActiveMQ的集群能力允许多个服务器形成一个逻辑单元,提供高可用性和负载均衡。当一个消息代理失败时,集群中的其他节点可以接管其职责,确保服务不中断。此外,通过在集群间分发消息,可以...

    activeMQ实战demo

    7. **性能和扩展性**:ActiveMQ支持集群和负载均衡,能够处理高并发的消息传递,同时通过网络和磁盘优化,保证了高性能。 8. **监控和日志**:ActiveMQ提供Web控制台,可以实时查看队列状态、消息统计等信息。同时...

    ActiveMQ Demo (C#)

    - **负载均衡**:消息可以被分发到多个消费者,实现负载均衡。 - **多种协议支持**:除了JMS,ActiveMQ还支持AMQP、STOMP、MQTT等多种消息协议。 6. **Demo中的Form配置** - 在这个Demo中,开发者可能创建了一个...

    ActiveMQ学习 完整例子

    - **集群**:多个ActiveMQ实例可以组成集群,提高可用性和负载均衡。 - **桥接**:连接不同ActiveMQ实例,实现跨域消息传递。 7. **高级特性** - **事务管理**:JMS事务保证消息的一致性,确保消息要么全部成功...

    apache-activemq-5.9.0 下载

    2. **核心组件**:ActiveMQ的核心组件包括Broker(消息代理)、Producer(生产者)、Consumer(消费者)、Topic(主题)和Queue(队列)。Broker负责路由和存储消息,生产者发送消息,消费者接收消息。Topic适用于...

    Activemq入门实例.pdf

    Apache ActiveMQ是一个开源的消息代理,遵循Java消息服务(JMS)规范,用于在...ActiveMQ在分布式系统中充当消息传递中介,能够有效地实现异步通信、负载均衡和解耦合等技术需求,是企业级应用开发中常见的技术选择。

    activeMQ-activeMQ

    6. **负载均衡与消息分发**:通过网络复制,ActiveMQ能实现消息在多个broker之间的自动分发,从而实现负载均衡,提升系统的处理能力。 7. **安全控制**:ActiveMQ提供基于角色的访问控制(RBAC)和SSL/TLS加密,...

    ActiveMQ客户端

    7. **网络拓扑**:ActiveMQ可以通过网络连接形成集群,实现高可用性和负载均衡。在集群中,消息可以在各个节点间自动路由,提高系统的健壮性。 8. **管理工具**:ActiveMQ提供了一个Web控制台(webconsole),可以...

    activemq_activemq_doublezoo_源码

    2. **ActiveMQ消费者API**: 消费者是从消息队列接收消息的组件。消费者同样需要`ConnectionFactory`来创建`Connection`,然后创建`Session`。在`Session`中,消费者会创建`MessageConsumer`。当消息到达时,`...

    ActiveMQ实践入门指南_ActiveMQ实践入门指南_源码

    2. 分区和负载均衡:通过网络连接器(Network of Brokers)实现。 3. 内存与磁盘策略:调整内存缓存大小和磁盘存储策略,平衡性能和稳定性。 九、故障恢复与高可用性 1. 热备份:通过双机热备或集群实现故障自动...

    activeMQ在文件上传的应用

    4. **消息消费**:在服务器端,我们需要编写一个消费者来监听特定的队列或主题,接收到Uploadify发送的消息后,从消息体中解析出文件信息,并负责实际的文件存储操作。这部分可能涉及到文件流的读取、临时文件的管理...

    【BAT必备】activeMQ面试题

    - **负载均衡**: 通过将多个消费者与队列关联起来,可以实现消息的负载均衡。 - **数据持久化**: 对于需要长期存储的消息,ActiveMQ提供了多种存储选项,包括内存、磁盘等。 - **消息路由**: 可以利用ActiveMQ的路由...

    activemq新手大全

    2. **activemq消息确认机制**:activemq允许消费者确认消息的接收,以确保消息已被正确处理,可以选择自动或手动确认模式。 3. **activemq持久化机制**:activemq通过将消息写入磁盘来实现持久化,即使服务器重启,...

Global site tag (gtag.js) - Google Analytics