关键词:
一、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学习笔记(代码片段)
文章目录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协议之上的?,一个... 查看详情