MQ的主要特点
“用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。”
同步通信
异步通信
系统耦合
解耦后
流量削峰
RabbitMQ基本特性
高可靠
灵 活 的 路 由 支持多客户端集群与扩展性高 可 用 队 列 权限管理
插件系统
可靠性
与Spring集成 Spring AMQP
AMQP协议
RabbitMQ工作模型
Direct 直连
Topic 主题
Fanout 广播
RabbitMQ安装
需要先安装Erlang
Java API编程
1、引入依赖
2、生产者
3、消费者
4、参数详解
RabbitMQ进阶知识
TTL
队列的消息过期时间单条消息过期时间
死信队列
什么是死信交换机和死信队列? 消息什么时候变成死信?
死信队列如何使用?
消息流转过程
延迟队列
延迟队列的总体方案死信队列的实现
rabbitmq-delayed-message-exchange的实现(Linux)
服务端流控
x-max-length
x-max-length-bytes
内存控制 40% Conn vm_memory_high_watermark 磁盘控制 30%
disk_free_limit.relative
disk_free_limit.absolute = 2GB
消费端限流
prefetch count
Spring AMQP
Spring 集成 AMQP时,它做了什么? Spring AMQP包括什么?
Spring AMQP核心组件
CachingConnectionFactory RabbitAdmin
Message
RabbitTemplate MessageListener
MessageListenerContainer(Simple Direct )
MessageListenerContainerFactory MessageConvertor
Spring集成RabbitMQ
<rabbit:connection-factory
<rabbit:admin
<rabbit:queue
<rabbit:direct-exchange
<rabbit:bindings
<rabbit:template
<rabbit:listener-container
Spring Boot集成RabbitMQ
RabbitConfig.java 消费者
生产者