RabbitMQ学习笔记3:RabbitMQ快速入门消息模式
Posted Vincent9847
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ学习笔记3:RabbitMQ快速入门消息模式相关的知识,希望对你有一定的参考价值。
一、RabbitMQ快速入门
1、什么是RabbitMQ?
(是基于AMQP协议的实现者,用Erlang语言写的。支持多种语言,用于在分布式系统中存储消息、转发消息,具有高可用、高可扩、易用性等特性。)
2、RabbitMQ的安装、Web管理界面及授权、安装Docker
RabbitMQ的角色分类
- (低权限)none:不能访问management plugin
- (⬇)management:只能查看自己的节点
- (⬇)Policymaker
- (⬇)Monitoring
- (高权限)Administrator
3、RabbitMQ消息简单模式的实现
简单模式:
- 创建连接工程;
- 创建连接connection;
- 通过连接获取通道Channel;
- 通过创建交换机、声明队列、绑定关系、路由key、发送消息和接收消息;
- 准备消息内容;
- 发送消息给队列;
- 关闭通道;
- 关闭连接。
4、什么是AMQP?
AMQP全称: Advanced Message Queuing Protocol(高级消息队列协议),是应用层协议的一个开发标准,为面向消息的中间件设计。
生产者流转过程:
建立连接->开启通道->发送消息->释放资源;
消费者流转过程:
建立连接->开启信道->准备接收消息->broker推送消息->发送确认->释放资源;
二、RabbitMQ的消息模式
1、RabbitMQ核心组成部分
核心概念:
- Server :又称Broker,接受客户端的连接,实现AMQP实体服务。安装rabbitmq-server;
- Connection :连接,应用程序与Broker的网络连接TCP/IP/三次握手和四次挥手;
- Channel :网络信道,几乎所有的操作都在Channel中进行, Channel是进行消息读写的通道,客户端可以建立对各Channel,每个Channel代表一个会话任务;
- Message :消息:服务与应用程序之间传送的数据,由Properties和body组成, Properties可是对消息进行修饰,如消息的优先级,延迟等高级特性, Body则就是消息体的内容;
- Virtual Host虚拟地址,用于进行逻辑隔离,最上层的消息路由,一个虚拟主机理由可以有若干个Exhange和Queueu,同一个虚拟主机里面不能有相同名字的Exchange;
- Exchange :交换机,接受消息,根据路由键发送消息到绑定的队列。(==不具备消息存储的能力==);
- Bindings : Exchange和Queue之间的虚拟连接, binding中可以保护多个routing key;
- Routing key :是一个路由规则,虚拟机可以用它来确定如何路由一个特定消息;
- Queue :队列:也成为Message Queue,消息队列,保存消息并将它们转发给消费者。
2.RabbitMQ整体框架
3.RabbitMQ运行流程
4.RabbitMQ支持消息的模式
- Simple 简单模式
- publish/Subscribe 发布订阅模式
- Routing 路由模式
- Topic 主题模式
- headers 参数模式
- Work 工作模式
Work模式:
- 轮询模式round-Robin(均分):不管服务器快慢,拿到的数据一样多;
- 公平分发(手动应答,能者多劳):服务快的拿到的数据多。
5.声明创建方式(全代码实现上面的模式)
6.MQ使用场景
- 解耦、削峰、异步;
- 高内聚、低耦合;
- 流量的削峰;
- 分布式事务的可靠消费和可靠生产;
- 索引、缓存、静态化处理的数据同步;
- 流量监控;
- 日志监控;
- 下单、订单分发、抢票。
以上是关于RabbitMQ学习笔记3:RabbitMQ快速入门消息模式的主要内容,如果未能解决你的问题,请参考以下文章