一.概述
1.1核心概念
1.1.1JMS
JMS (JAVA MESSAGE SERVICE)
1.1.2 P2P
点对点发送,一个消息只能被消费一次
涉及:消息队列,发送者,接收者
特点:1.不用同时在线。2.一个消息只能被消费一次
1.1.3Pub/Sub
Pub/Sub发布订阅 一个消息可以被消费多次
涉及角色:主题(Topic)发布者(Publisher) 订阅者(Subscriber)
客户端将消息发送到主题,多个发布者将消息
特点
1.发布者和订阅者同时在线
2.一个消息可以被多个订阅者消费
1.1.4MQ
MQ:消息中间件,消息队列
作为系统间
1.2MQ的优缺
1.解耦
降低系统模块的耦合度
2.提高系统响应时间
3.异步消息
4.过载保护
基于MQ实现削峰填谷
1.3主流MQ对比
1.ActiveMQ
Apache下
完全支持java的JMS协议
消息模式:1.点对点 2.发布订阅
2.RabbitMQ
Erlang语言 实现的开源的MQ中间件,支持多种协议
3.Kafka
Apache下开源项目
高性能分布式消息队列,一般海量数据传输,大数据部门比用
单机吞吐量:10W/s
4.RocketMQ
阿里贡献给了Apache 参考了Kafka实现的基于java消息中间件
5.ZeroMQ
消息传输最快
二.RabbitMQ
2.1
2.2通信模块
涉及核心:
Exchange(交换机,交换器):根据绑定的匹配规则,对消息进行匹配处理。
Queue()
三.RabbitMQ初体验
涉及角色:
1.MQ服务器
可基于Docker安装RabbitMQ
记住:15672:网页版,可视化服务器数据
5672:客户端连接点的端口号
3.2.MQ消息发送者
1.依赖jar
2.代码编写
(1)创建连接工厂
设置连接线信息
(2)获取连接对象
(3)创建通道
(4)定义队列
3.运行测试
查看控制台能否获取消息。
四.RabbitMQ的消息模式
4.1普通消息
点对点消息
一个消息只能消费一次
只需要队列就可以,不需要交换器
4.2交换器消息
fanout:只要有消息就转发给绑定的队列,不会进行消息的路由判断。
五.RabbitMQ消息的总结