http://activemq.apache.org/my-producer-blocks.html 回答了这个问题: ActiveMQ 5.x 支持Message Cursors,它默认把消息从内存移出到磁盘上.所以,只有在分配给message store的磁盘空间被用完了,才会出现问题.分配的磁盘空间是可以配置的. http://activemq.apache.org/message-cursors.html 有一张描述store based cursor的图: 上图中的元素对应的数据结构如…
1. 使用 KafkaProducer 发送消息,是按 batch 发送的,producer 首先把消息放入 ProducerBatch 中: org.apache.kafka.clients.producer.internals.ProducerBatch 2. KafkaProduer 类中有一个 Thread 属性,负责 IO,发送和接收数据: this.sender = new Sender(logContext, client, this.metadata, this.accumula…
http://www.aboutyun.com/thread-9906-1-1.html http://my.oschina.net/u/591402/blog/152837 https://github.com/bkimminich/apache-kafka-book-examples/blob/master/src/test/kafka/SimplePartitioner.java https://cwiki.apache.org/confluence/display/KAFKA/0.8.0…
producer 在提交事务时,发生宕机,commit 的命令没有发送到 broker,这时会发生什么? ActiveMQ 开启事务发送消息的步骤: session.getTransactionContext().begin(); producer.send(message); session.getTransactionContext().commit(); 在第三步加断点,然后关闭 producer 进程,模仿宕机. broker 感知到 producer 的连接关闭后,会触发删除连接操作,…
原文:https://mp.weixin.qq.com/s/lpsQ3dEZHma9H0V_mcxuTw 一.资料文档 二.开发语言 三.支持的协议 四.消息存储 五.消息事务 六.负载均衡 七.集群方式 八.管理界面 九.可用性 十.消息重复 十一.吞吐量TPS 十二.订阅形式和消息分发 十三.顺序消息 十四.消息确认 十五.消息回溯 十六.消息重试 十七.并发度 本文将从,Kafka.RabbitMQ.ZeroMQ.RocketMQ.ActiveMQ 17 个方面综合对比作为消息队列使用时的…
来源:http://t.cn/RVDWcfe 一.资料文档 Kafka:中.有kafka作者自己写的书,网上资料也有一些.rabbitmq:多.有一些不错的书,网上资料多.zeromq:少.没有专门写zeromq的书,网上的资料多是一些代码的实现和简单介绍.rocketmq:少.没有专门写rocketmq的书,网上的资料良莠不齐,官方文档很简洁,但是对技术细节没有过多的描述.activemq:多.没有专门写activemq的书,网上资料多. 二.开发语言 Kafka:Scala rabbitmq…
http://activemq.apache.org/async-sends.html producer发送消息有同步和异步两种模式,可以通过代码配置: ((ActiveMQConnection)connection).setUseAsyncSend(true); producer默认是异步发送消息.在没有开启事务的情况下,producer发送持久化消息是同步的,调用send会阻塞直到broker把消息保存到磁盘并返回确认. 消息设置为持久: MessageProducer producer =…
持久化消息和非持久化消息的发送策略 消息同步发送和异步发送 ActiveMQ支持同步.异步两种发送模式将消息发送到broker上.同步发送过程中,发送者发送一条消息会阻塞直到broker反馈一个确认消息,表示消息已经被broker处理.这个机制提供了消息的安全性保障,但是由于是阻塞的操作,会影响到客户端消息发送的性能 异步发送的过程中,发送者不需要等待broker提供反馈,所以性能相对较高.但是可能会出现消息丢失的情况.所以使用异步发送的前提是在某些情况下允许出现数据丢失的情况. 默认情况下,非…
安装环境:Activemq5.11.1, jdk1.7(activemq5.11.1版本需要jdk升级到1.7),虚拟机: 192.168.147.131 [root@localhost software]# pwd /export/software [root@localhost software]# -bin.tar.gz [root@localhost software]# /usr/local 配置Nginx代理Activemq后台管理应用默认绑定的8161端口 upstream tom…
1. Kafka的Producer 不论将kafka作为什么样的用途,都少不了的向Broker发送数据或接受数据,Producer就是用于向Kafka发送数据.如下: 2. 添加依赖 pom.xml文件如下: <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka --> <dependency> <groupId>org.apache.kafka</groupId> <artifa…