firemail

标题: 消息队列相关 [打印本页]

作者: java    时间: 2019-5-2 18:41
标题: 消息队列相关
本帖最后由 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
重账控制

消息顺序性保证



作者: java    时间: 2019-5-19 14:16
面试避坑指南之并发编程的原理_kafaka.mp4

分布式消息通信
MOM(Message oriented middleware)


Kafka  A distributed streaming platform
一款分布式消息发布和订阅系统,具有高性能、高吞吐量的特点而被广泛应用于大数据传输场景。它是由LinkedIn公司开发,
使用Scala语言编写,之后成为Apache基金会的一个顶级项目。
kafka提供类似JMS的特性,但是在设计和实现上是完全不同的,而且他也不是JMS规范的实现。









欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3