在 ActiveMQ 5.0的之前版本中,broker 会把正在传输的消息保存在内存中。使用这种内存模型,当一个消费者消费消息的速度跟不上生产者生产消息的速度的时候,会是 broker 内存中维护的正在传输的消息数量迅速增长,最终到达最大限额。当到达此最大限额后,broker 就不能接受来自客户端的消息,这样生产者就会被阻塞直到 broker 的内存中有保存消息的空间为止。
从 5.0 版本开始,ActiveMQ 实现了一种新的内存模型以防止慢速的消费者阻塞运行速度更快的生产者。这种内存模型使用了消息游标,详情请查看 http://activemq.apache.org/message-cursors.html 。
当消息消费者在激活并且快速消息消息的情况下,紧跟消息的生产者。消息被消息存储并且被传递到消息者关联的broker对应的分发调度队列。

如果消息消费者处于激活状态,处于存储状态的消息处于等待状态或者消费者消费比生产者慢的时候,消息将通过等待指针把消息从消息存储中将消息放入分发队列中。

游标类型:
在ActiveMQ5.0中默认消息指针类型是以存储为为基础。有两种类型的游标:vm Cursor和File Based Cursor。
Vm Cursor
这种指针是从ActiveMQ4.x开始使用,当在需要的时候,消息将被存储到内存中同时把消息传递到分发队列中。这种基于内存指针速度很快,但是当消息者长时间处于非运行状态或者消息者消息很慢的时候,性能可能急速下降,内存占用比较高。

File Based Cursor
这种指针在当Broker中内存达到最大的时候,指针将消息置入到磁盘上的临时文件中。这种消息的指针使用在消息者消费比较高。但是消息存储比较慢的情况。
分享到:
相关推荐
- **消息游标**:通过游标机制更有效地处理大量消息。 - **异步发送**:允许消息在后台发送,从而提高应用程序的吞吐量。 - **严格分发策略**:确保消息按照特定顺序分发给消费者。 - **轮询分发策略**:按轮询方式...
5. **性能优化**:通过支持游标操作、动态负载平衡以及虚拟接收者等手段,ActiveMQ可以有效提升消息处理的效率。 6. **集成能力**:ActiveMQ可以通过Apache Camel等工具支持企业集成模式(EIP),使得集成不同系统变...
包括: 消息游标、异步发送、严格分发策略、轮询分发策略、优化批量确认、 生产者流量控制等 十一: Message高级特性 包括:消息属性、 Advisory Message、延迟和定时消息投递、Blob消息、消息 转换等 n 十二: ...
- **作用**:主要用于构建分布式应用中的消息传递机制,支持多种消息模型,如点对点(PTP)和发布/订阅(Pub/Sub),提高系统的可扩展性和解耦能力。 **1.2 主要功能** - **支持JMS Provider**:实现高可用性、高性能...
* 在数据库中,使用游标(Cursor)来实现批量更新操作,例如声明一个游标 emp_cur 来更新员工的薪水。 * 数据库设计的重要性,通常是由架构师或工程经理设计的,但自己模块的设计也需要自己来完成。 二、Linux 命令...
常见的中间件包括消息队列(如RabbitMQ和ActiveMQ)、缓存服务(如Redis和Memcached)、API网关(如Zuul和Spring Cloud Gateway)以及微服务注册与发现(如Eureka和Consul)。面试题可能要求你解释这些中间件的作用...
开发类内容中,提到了Eclipse IDE的使用技巧,如更名、图表工具、工作流工具的应用,以及Struts框架中的问题解决,例如游标超限错误。还有数据库建模工具PowerDesigner的操作,如何在两个表之间添加外键关联。Java...
Oracle_day04,游标,存储过程,存储函数,触发器 11-Maven(学习2天) Maven_day01._Maven安装.Maven整合SSH Maven_day02.Maven整合SSH.私服安装配置 12-SSH企业案例2_ERP_项目整合(学习15天) ERP_day01_ERP简介...