关于消息中间件activemq的学习以及相关知识总结

慕课学习视频:https://www.imooc.com/video/15278

一、基础知识

1、为什么使用消息中间件?

消息产生者只负责生产消息,消息消费者只负责消费消息,2者不需要都同时连接就可以实现消息交互

2、消息中间件的好处?

(1)解耦 (2)异步 (3)横向扩展 (4)安全可靠 (5)顺序保证

3、JMS相关概念

(1)提供者:实现JMS规范的消息中间件服务器

(2)客户端:发送或接收消息的应用程序

(3)生产者:创建并发送消息的客户端

(4)消费者/订阅者:接收并处理消息的客户端

(5)消息:应用程序之间传递的数据内容

(6)消息模式:消息传递方式,JMS有主题和队列两种模式

        a、队列模式:队列中的消息只能被一个消费者消费

        b、主题模式:主题中的消息被所有订阅者消费、

(7)JMS编码接口

        a、ConnectionFactory:与消息中间件的连接工厂

        b、Connection:连接

        c、Destination:消息目的地

        d、Session:会话(一个单线程的上下文)

        e、MessageConsumer:消息消费者(由会话创建)

        f、MessageProducer:消息生产者(由会话创建)

        g、Message:消息


二、高级扩展

1、为什么要对消息中间件集群?

(1)实现高可用:防止单点故障引起服务中断

(2)实现负载均衡:提升效率

2、集群方式:

(1)客户端集群:多个消费者消费同一个队列

(2)Broker clusters:多个Broker之间同步消息,实现负载均衡

        网络连接器:ActiveMQ服务器之间的网络通讯方式,用于服务器透传信息,分为静态连接和动态连接

(3)Master Slave:主从关系,实现高可用

        a、共享存储:获取排他锁占用资源的成为Master,等待资源的成为Slave,若Master服务挂了,抢到资源的Slave成为新的Master,挂断的Master重启后若获取不到资源则成为Slave

        b、基于复制的LevelDB储存:通过ZooKeeper来选举Master,而Master通过Zookeeper把消息同步给Slave储存,如果Master服务挂了,ZooKeeper会再次选举正常服务节点来当Master

3、三台服务器可以实现相对完美集群方案(1台服务器挂了立马重启并不会中断服务,可2台服务器挂了就会引起服务中断)


三、其他消息中间件

三个主流中间件比较


    1、RabbitMQ



2、Kafka




猜你喜欢

转载自blog.csdn.net/u014682191/article/details/80739696