Rabbitmq理论知识
目录
1 RabbitMQ简介
1.1 是什么
- 一种开源(MPL)的消息代理
- 一种面向消息的中间件
- 一种默认遵循AMQP协议的MQ服务
1.2 做什么
- 逻辑解耦,异步任务
- 消息持久化,重启不影响
- 削峰,大规模数据处理
1.3 特点
- 可靠性 消息持久化 发布确认 传输确认
- 可扩展性 多节点集群,可动态更改
- 多客户端 支持多种编程语言
- 管理界面 监控&管理
1.4 Docker 安装RabbitMQ
|
|
2 RabbitMQ关键术语
- Exchange :交换机,决定消息以什么样的规则路由到哪个队列
- Queue: 消息的载体,一条消息可以被投递到一个队列或多个队列
- Binding:绑定,将Exchange和Queue按照路由规则绑定起来
- Routing key:路由关键字,Exchange 根据这个关键字来投递消息
- Channel:消息通道,客户端的每个连接都会建立多个通道,用于传递消息
- Producer:消息生产者,投递消息的程序
- Consumer:消息消费者,接收消息的程序
3 RabbitMQ的工作原理
消息发布者发布消息到Exchange,Exchange分发信息到绑定的队列上,消费者从队列取数据
4 Exchange工作模式
- Fanout :类似于广播,转发到所有绑定到Exchange的上Queue
- Direct:类似于单播,需要Routing key 和Binding key 完全绑定
- Toic:类似于组播,转发到符合通配符匹配的Queue
- Headers:请求头和消息头完全匹配才能接收消息
5 通过管理界面发布订阅消息
- 创建Exchange,指定Exchanges 名称,工作模式等配置项
- 创建Quque,指定Queue 名称等配置项
- 为Exchanges 绑定Queue,并配置 RoutingKey
- 为Queue绑定Exchanges,并配置Routingkey