rabbitmq学习笔记3:rabbitmq快速入门消息模式

Vincent9847 Vincent9847     2022-12-12     625

关键词:

一、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学习笔记(代码片段)

文章目录1.RabbitMq(消息中间件)1.概念:是基于队列模式实现的异步/同步的传输数据。2.传统的Http请求存在哪些缺点?3.mq的使用场景?4.mq服务器如何保证消息不丢失?5.VirtualHost?Exchange分派我们的消息存放在哪个队... 查看详情

rabbitmq学习笔记(代码片段)

文章目录RabbitMq(消息中间件)1.概念:是基于队列模式实现的异步/同步的传输数据。2.传统的Http请求存在哪些缺点?3.mq的使用场景?4.mq服务器如何保证消息不丢失?5.VirtualHost?Exchange分派我们的消息存放在哪个队列... 查看详情

rabbitmq学习笔记(自用)(代码片段)

...概念1.1什么是MQ1.2为什么要用MQ1.3MQ的分类1.4MQ的选择二、RabbitMQ2.1RabbitMQ的概念2.2四大核心概念三、简单案例3.1WorkQueues3.2轮训分发消息3.3消息应答3.4RabbitMQ持久化3.5不公平分发3.6预取值分发四、RabbitMQ-发布确认4.1发布确认逻辑4.2发... 查看详情

rabbitmq学习笔记

rabbitMQ学习笔记2017年12月31日星期日Lee 环境:centos7版本:rabbitmq-server-3.7.2-1 准备了3台主机做实验。先配置hosts如下。cat/etc/hosts192.168.5.71 node1192.168.5.72 node72192.168.5.73 node730、基础知识建议看下美团分享的ra 查看详情

rabbitmq学习笔记

一环境搭建下载地址:ERLANG  http://www.erlang.org/downloadsMQhttps://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_9首先,由于RabbitMQ使用Erlang编写的,需要运行在Erlang运行时环境上,所以在安装RabbitMQServer之前需要安 查看详情

rabbitmq学习笔记(持续更新ing)(代码片段)

...消息模式发布订阅模型快速入门(java)首先安装rabbitmq(单机版)rabbitmq的安装(官网文档)在我自己租的云服务器上,直接用docker进行安装(一行命令搞定)dockerrun-it--rm--namerabbitmq-p5672:5672-p156... 查看详情

rabbitmq学习笔记1安装和配置

环境OS:CentOSLinuxrelease7.1.1503(Core) kernel:3.10.0-229.el7.x86_64 安装参考:http://www.rabbitmq.com/install-rpm.html Erlang rabbitmq从官网:http://www.rabbitmq.com/,找出最新版本为3.6.2 查看详情

rabbitmq学习笔记(代码片段)

RabbitMq学习笔记1.消息队列1.1MQ相关概念1.1.1什么是MQ?1.1.2为什么要用MQ?1.2.3MQ的分类1.2.4MQ的选择1.2.5为什么选择RabbitMQ?1.2.5MQ对比分析图在这里插入图片描述1.2RabbitMQ1.2.1.RabbitMQ的概念1.2.2.四大核心概念1.2.3RabbitMQ6大模... 查看详情

rabbitmq学习笔记-p1(初识mq&快速入门)(代码片段)

...频指路👉B站黑马微服务超级推荐!!!RabbitMQ1.初识MQ1.1同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应异步通讯:就像发邮件,不需要马上回复两... 查看详情

rabbitmq学习笔记3-使用topic交换器

本例使用topic接收警告、错误的日志,并根据匹配的路由规则发送给不同的Queue队列来处理的例子:日志生产者SenderWithTopicExchange1packagecom.yzl.test2;23importjava.util.concurrent.CountDownLatch;4importjava.util.concurrent.ExecutorService;5importjava. 查看详情

节清晰+通俗易懂)(代码片段)

...学习,最近花了一段时间系统学习了当下最为主流的RabbitMQ消息队列,学习过程中也随时记录,刚开始学习的时候懵懵懂懂,做的笔记都比较杂乱,系统学习完后我将笔记内容不断反复修改,对章节进行设... 查看详情

rabbitmq学习笔记(代码片段)

目录一、引⾔二、RabbitMQ介绍三、RabbitMQ安装四、RabbitMQ架构1.官⽅的简单架构图2.RabbitMQ的完整架构图3.查看图形化界⾯并创建⼀个VirtualHost五、RabbitMQ的队列模式1.RabbitMQ的通讯⽅式2.HelloWorld模式-简单队列模式3.work队列模式:... 查看详情

rabbitmq学习笔记二:rabbitmq发送接收消息helloworld(java版)

前面我们已经了解了Windows下RabbitMQ相关服务安装,参见http://blog.csdn.net/u010416588/article/details/54599341一引入rabbitmqjavaclient前面我们已经在本地(windows下)安装配置好了RabbitMQserver。现在我们引入rabbitmqJavaclient。在eclipse中... 查看详情

rabbitmq学习笔记2基本概念

官网:http://www.rabbitmq.com 参考:http://blog.csdn.net/column/details/rabbitmq.html 1基本概念rabbitmqserver(brokerserver):rabbitmq服务client:包括producers和consumermessage:包括payload和labelexchange:produce 查看详情

rabbitmq学习笔记五:rabbitmq之优先级消息队列

RabbitMQ优先级队列注意点:1、只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效2、RabbitMQ3.5以后才支持优先级队列代码在博客:RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成 最后面有下载地址,只是做... 查看详情

rabbitmq学习笔记

1基本概念rabbitmqserver(brokerserver):rabbitmq服务client:包括producers和consumermessage:包括payload和labelexchange:producer发布message的地方queue:messages存放和consumer收取message的地方bindings:将message从exchange到不同queue的实现con 查看详情

分布式服务框架学习笔记10rabbitmq在centos下的安装(代码片段)

分布式服务框架学习笔记10RabbitMQ在CentOS下的安装一、准备二、安装erlang1.安装依赖3.RabbitMQ默认端口号自行启用三、安装RabbitMQ三、使用WEB管理界面1.启用web2.用户管理命令一、准备centos8要先安装erlang二、安装erlang1.安装依赖yum-yins... 查看详情

rabbitmq学习笔记2-理解消息通信

...的相关信息,包含具体的交换器、消息的接受兴趣方等。rabbitmq的基础流程如下:RabbitMQ的客户端和服务端通过channel与RabbitMQ服务器进行通信。Channel(信道):程序和RabbitMQ之间的连接是通过channel,channel是基于TCP协议之上的?,一个... 查看详情