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消息简单模式的实现

简单模式:

  1. 创建连接工程;
  2. 创建连接connection;
  3. 通过连接获取通道Channel;
  4. 通过创建交换机、声明队列、绑定关系、路由key、发送消息和接收消息;
  5. 准备消息内容;
  6. 发送消息给队列;
  7. 关闭通道;
  8. 关闭连接。

4、什么是AMQP?

AMQP全称: Advanced Message Queuing Protocol(高级消息队列协议),是应用层协议的一个开发标准,为面向消息的中间件设计。

生产者流转过程:

建立连接->开启通道->发送消息->释放资源;

消费者流转过程:

建立连接->开启信道->准备接收消息->broker推送消息->发送确认->释放资源;

二、RabbitMQ的消息模式

1、RabbitMQ核心组成部分

 核心概念:

  1. Server :又称Broker,接受客户端的连接,实现AMQP实体服务。安装rabbitmq-server;
  2. Connection :连接,应用程序与Broker的网络连接TCP/IP/三次握手和四次挥手;
  3. Channel :网络信道,几乎所有的操作都在Channel中进行, Channel是进行消息读写的通道,客户端可以建立对各Channel,每个Channel代表一个会话任务;
  4. Message :消息:服务与应用程序之间传送的数据,由Properties和body组成, Properties可是对消息进行修饰,如消息的优先级,延迟等高级特性, Body则就是消息体的内容;
  5. Virtual Host虚拟地址,用于进行逻辑隔离,最上层的消息路由,一个虚拟主机理由可以有若干个Exhange和Queueu,同一个虚拟主机里面不能有相同名字的Exchange;
  6. Exchange :交换机,接受消息,根据路由键发送消息到绑定的队列。(==不具备消息存储的能力==);
  7. Bindings : Exchange和Queue之间的虚拟连接, binding中可以保护多个routing key;
  8. Routing key :是一个路由规则,虚拟机可以用它来确定如何路由一个特定消息;
  9. Queue :队列:也成为Message Queue,消息队列,保存消息并将它们转发给消费者。

2.RabbitMQ整体框架

 3.RabbitMQ运行流程

4.RabbitMQ支持消息的模式

  1. Simple 简单模式
  2. publish/Subscribe 发布订阅模式
  3. Routing 路由模式
  4. Topic 主题模式
  5. headers 参数模式
  6. Work 工作模式

Work模式:

  • 轮询模式round-Robin(均分):不管服务器快慢,拿到的数据一样多;
  • 公平分发(手动应答,能者多劳):服务快的拿到的数据多。

5.声明创建方式(全代码实现上面的模式)

6.MQ使用场景

  1. 解耦、削峰、异步;
  2. 高内聚、低耦合;
  3. 流量的削峰;
  4. 分布式事务的可靠消费和可靠生产;
  5. 索引、缓存、静态化处理的数据同步;
  6. 流量监控;
  7. 日志监控;
  8. 下单、订单分发、抢票。

 

以上是关于RabbitMQ学习笔记3:RabbitMQ快速入门消息模式的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMq学习笔记

RabbitMq学习笔记

RabbitMQ学习笔记(持续更新ing)

RabbitMQ 快速复习(面试常问题型都在里面)

Python 学习笔记 - RabbitMQ

RabbitMQ学习笔记-p1(初识MQ&快速入门)