|
本帖最后由 java 于 2019-5-8 18:10 编辑
青山_20181205_分布式架构核心组件之消息队列.mp4
MQ存储转发消息1.实现异步 : 批量数据的异步处理
2.实现解耦:串行任务的并行化
3.流量削峰:高负载任务的负载均衡
4.实现广播:一对多的通信
订阅 发布
RabbitMQ的工作模型
信道(Channel):多路复用连接中的一条独立的双向数据流通道。为会话提供物理传输介质。
TCP长连接
交换机分发消息
交换机绑定到队列
实现协议 AMQP 协议(夸语言) Advanced Message Queuing Protocol
JMS(java message service)规范
basicPublic("GP_DIRECT_EXCHANGE","spring","test");
#代表0个或者多个单词
*代表1个单词
Spring Boot整合RabbitMQ
谁使用谁创建
重复创建相同属性的对象是不会报错的
路由保证
1.mandatory=true+ReturnListener
2.备份交换机
消息存储
durable参数
1.队列持久化
2.交换机持久化
3.消息持久化 deliverMode(2)
消费者确认
channel.basicAck(); //手工应答
channel.basicReject(); //单条拒绝
channel.basicNack(); //批量拒绝
正常情况下 消费者是自动发送ACK的 手动要设置 autoAck = false
其它
1.消费者回调a.消费者发送应答消息
b.消费者调用生产者的api
2.补偿机制
a.重发消息
b.控制次数
3.消息幂等性
消费端做消息幂等性的处理
msgId bizId
重账控制
消息顺序性保证
|
|