学习 Activemq
一. MQ的产品种类:
- Kafka
Rabbitmq
Rocketmq
Activemq
二.
-
Activemq解决的问题:解耦,削峰,异步
-
A.mq的产品种类:
kafka,Rabbitmq,RocketMq,ActiveMq
B.ActiveMq:
1.消息的发送和接收
2.Mq的高可用
3.mq的集群和容错配置
4.mq的持久化
5.消息的延时发送,定时投递
6.收到消息后回复(签收机制) -
RPC接口基本上都是同步调用,整个服务性能遵循“木桶原理”,即整体系 统的耗时取决于链路中最慢的那个接口:比如:A调用A/B/C都是50ms,但是此时B有电泳B1,花费2000ms,name直接拖累了真个服务性能
-
使用mq可以达到几个目的:
- 要做到系统解耦,当新的模块接进来时,可做到代码改动最小:能够解耦
2.设置流量缓冲池,可以让后端系统按照自身吞吐能力进行消费,不被冲垮:能够削峰
3.强弱依赖梳理能够将非关键词调用链路的操作异步化并提升整体系统的吞吐能力:能够异步
- 要做到系统解耦,当新的模块接进来时,可做到代码改动最小:能够解耦
三
-
mq实现的过程:发送者把消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候,消息服务器会将消息转发给接收者,在这个过程中,发送和接收是异步的,也就是发送无需等待,而且发送者和接收者的生命周期也没有必然关系;尤其在发布订阅模式下,可以完成一对多的通信,即让一个消息有多个接收者,下载路径:Activemq官网:http://activemq.apache.org/
(下载5.15.9的linux版本)
2. 安装步骤:上传到linux的/opt目录(安装安三方软件)——解压(tar -zxvf 压缩包名)——在根目录下mkdir /activemq——cp -r 文件加名 /activemq(复制activemq文件夹)
启动:/bin 目录下 ./activemq start 默认端口:61616 -
activemq的两大模式特性:
点对点模式:一对一,一个消息生产者对应一个消息消费者
发布订阅模式:一对多,一个消息生产者对应多个消息消费者
4.点对点消息生产者编码:注意关闭防火墙和网络协议
变量 :ACTIVEMQ_URL:消息中间件mq的url
QUEUE_NAME:发送的消息
消息消费者编码:记得close关闭资源
5.MessageListener入门消费者3大消费情况:通过Onmessage监听
a. 先生产,只启动一号消费者,一号消费者能消费消息
b. 先生产,只启动一号消费者,再启动二号消费者,一号消费者可以消费消息,二号消费者不能消费消息
c. 先启动两个消费者(每个消费者能消费6条),再生产6条消息,同一个队列中两个消费者一人一半
d. 默认负载均衡,轮训
开发步骤:
四:发布订阅模式:
生产者代码:
消息消费者:
发布订阅模式类似于公众号,订阅者只能消费订阅后发送的消息,不能消费订阅前发送的,所以先启动消费者,后发送消息,不然就是一个废消息
学习视频连接:尚硅谷.https://www.bilibili.com/video/BV164411G7aB?p=17