ActiveMQ笔记

配置:

1. brokerURL

    failover:(tcp://xxx.xxx.xxx.1:61616?tcpNoDelay=true,tcp://xxx.xxx.xxx.2:61616?tcpNoDelay=true,tcp://xxx.xxx.xxx.3:61616?tcpNoDelay=true)?timeout=10000&randomize=false

    主从模式必须加上randomize=false。

 

发送:

1. 重要消息采用默认的同步发送useAsyncSend=true;

2. 加上线程池;

3. 批量发送加上事务。

同步发送采用线程池和事务批量发送的话,本机测试(levelDB持久化) 10W消息12秒发送完比,约8000/S。

 

接收:

1. 加上线程池;

2. 重要消息加上事务,保证一个consumer抛Exception后消息能转发到其它consumer;

3. 不能容忍重复的消息一定要加上去重处理,当consumer没有ACK之前停机一定会发生重复消息且redeliveryCounter=0(这里不知是否没配置对)。可运行activeMQ自己的测试类RedeliveryPolicyTest.java中的testRepeatedRedelivery*方法,在“connection.close()”之前停止运行。

 

消息确认:

1. optimizeAcknowledge:每批次消息消费65%后发送确认,假如某个queue的destination为"queue.test.msg?consumer.prefetchSize=10",客户端在处理完第7条消息时会发送第1~7条消息的ACK。也就是说某个consumer在处理完这10条后停机,后面的3条消息会得不到确认,再开启一个consumer会重新收到这3条且redeliveryCounter=0。

2. optimizeAcknowledgeTimeOut:系统时间 - 前条消息处理时间 > optimizeAcknowledgeTimeOut即发送ACK,如果条件不成立则按optimizeAcknowledge处理

3. optimizedAckScheduledAckInterval:每隔optimizedAckScheduledAckInterval就发送ACK,如果条件不成立则按optimizeAcknowledge处理。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值