文章目录
《3.7.1 消息中间件设计篇》
-
13 27 消息中间件常用的协议:
为什么不使用HTTP协议?1,HTTP格式更复杂,不需要;2,HTTP是短连接,MQ基本是长连接 -
23分 常用持久化方式:
-
26 49 常用的消息中间件分发策略:
-
29 4 高可用方案:
1)主从共享:
2)主从同步:
通常生产者写master; 可以负载均衡
3)多主集群同步
4)多主集群转发
5)master-slave与Broker-cluster结合 :
《3.8.1 ActiveMQ入门》
- JMS于不同的MQ,可类似于JDBC对应于不同的数据库驱动程序:
- 4 43 JMS的消息结构:
《3.8.2 ActiveMQ支持的消息协议》
- 12 18 NIO:
- 35 10 用组播形式自动发现服务器
- 38 50 MQTT协议多用于物联网:
- 40 30 服务质量(QoS):
《3.8.3 Activemq高可用集群方案》
-
延时、调度消息 http://activemq.apache.org/delay-and-schedule-message-delivery.html
需要在activemq.xml的broker结点中配置schedulerSupport="true"
-
4 39 ActiveMQ的几种集群方式:
-
- Shared filesystem/database Master-Slave部署方式如下图。解决的是Broker单点故障/故障切换的问题,即为了高可用。
- Shared filesystem/database Master-Slave部署方式如下图。解决的是Broker单点故障/故障切换的问题,即为了高可用。
-
- Broker-Cluster 部署方式如下图。原理在于Broker也可以作为消费者去读取其它Broker的消息。可通过static或者multicast的方式部署。主要目的是为了负载均衡
- Broker-Cluster 部署方式如下图。原理在于Broker也可以作为消费者去读取其它Broker的消息。可通过static或者multicast的方式部署。主要目的是为了负载均衡
-
- 32 30 Master-Slave与Broker-Cluster结合如下图。既高可用,也可以负载均衡
- 32 30 Master-Slave与Broker-Cluster结合如下图。既高可用,也可以负载均衡
《3.8.4 持久化和事务机制》
- kahaDb
- 13 35+ 事务机制
- 17 45 在消费者端开启事务,rollback会导致MQ重发消息,重发次数默认6
- 20 35 不需使用事务,Consumer设置确认模式为客户端手动确认:
session = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
没有acknowledge,也可以进行
// 消息重发
finalSession.recover();
- 21 49 永久订阅者:即使客户端离线,当它再次连接上时,会得到所有自己离线时发送到topic的消息
- 32分 Consumer可按属性筛选消息