broker网络连接(高性能方案)
准备两台 activeMQ服务器 mysql1和mysql2
mysql2 节点 activemq.xml 中 broker 节点中增加如下配置
<networkConnectors>
<networkConnector uri="static://(tcp://mysql1:61616,tcp://mysql2:61616)"/>
</networkConnectors>
启动两个节点 发现mysql2 节点控制台中 network 中有 mysql1桥接
这个时候通过代码往 mysql2机器发送消息,然后用消费者从mysql1中消费,发现可以消费到 。 mysql2 节点中的消息自动同步到了mysql1 中。同理测试 mysql1中的消息不能同步到mysql2中.然后我们在 mysql1 节点中的 activemq.xml 中 broker 节点中增加同样的配置 并重启。再次进行上述测试 消息可以两个节点之间 传递。
activeMQ优缺点及使用场景
缺点:
1、吞吐量低,由于 ActiveMQ 需要建立索引,导致吞吐量下降。这是无法克服的缺点,只要使用完全符合 JMS 规范的消息中间件,就要接受这个级别的TPS
2、不支持分片
这是一个功能缺失,JMS 并没有规定消息中间件的集群、分片机制。而由于 ActiveMQ 是为企业级开发设计的消息中间件,初衷并不是为了处理海量消息和高并发请求。如果一台服务器不能承受更多消息,则需要横向拆分。ActiveMQ 官方不提供分片机制,需要自己实现
优点:
可控性强 还有比较好的监控机制和界面
比较简单 上手容易
适用场景:
tps低的场景
ActiveMQ 采用消息推送方式,所以最适合的场景是默认消息都可在短时间内被消费。数据量越大,查找和消费消息就越慢,消息积压程度与消息速度成反比