RabbitMQ (基础知识)
AMQP简介
AMQP(Advanced Message Queue )即:高级消息队列协议;,是应用层协议的一个开放标准,为面向消息的中间件设计;高级消息队列协议使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能。
RabbitMQ简介
- RabbitMQ是一个用Erlang编写的针对AMQP的开源项目,属于一个流行的开源消息队列系统
- RabbitMQ 支持持久化
- RabbitMQ 支持高可用
RabbitMQ的官网:http://www.rabbitmq.com
基础概念
Broker:简单来说就是消息队列服务器实体。
Exchange:消息交换机,他指定消息按什么规则,路由到那个队列
Queue:消息队列载体,每个消息都会被投入到一个或多个队列
Binding:绑定,就是把exchange和queue连接在一起,
vhost:虚拟主机,一个broker里可以开设多个vlhost,用作不同的权限分离
producer:消息生产者,就是投递消息的程序
consumer:消息的消费者,就是接受消息的程序
channel:消息通道,在客户端的每个连接里,可以建立多个channel,每个channel代表一个会话任务

RabbitMQ工作流程
- producer 客户端 产生message
- producer客户端 连接到服务器broker,创建一个channel
- producer客户端 声明一个exchange,并设置相关属性(如:Routing key等)
- bingding 将Exchange和Queue的绑定并同时指定一个Binding Key
- exchnge 根据Routing key,binding key,Exchange Type 为message 选定 Queue
- consumer客户端监听并 收到message
Exchange Type规则表
| 类型名称 | 类型描述 |
|---|---|
| Direct Exchange | Point-to-Point 消息模式,消息点对点的通信模式, Direct Exchange 根据 Routing Key 进行精确匹配, 只有对应的 Message Queue 会接受到消息 |
| Topic Exchange | Publish-Subscribe(Pub-sub)消息模式, Topic Exchange 根据 Routing Key 进行模式匹配, 只要符合模式匹配的 Message Queue 都会收到消息 |
| Fanout Exchange | 广播消息模式, Fanout Exchange 将消息转发到所有绑定的 Message Queue |
| headers Exchange | 不依赖于routing key与binding key的匹配规则来路由消息, 而是根据发送的消息内容中的headers属性进行匹配。 |
参考文章:https://www.cnblogs.com/cloudhere/p/10673654.html
推荐文章:
https://www.ibm.com/developerworks/cn/cloud/library/1403_renmm_opestackrpc/

RabbitMQ (基础知识)的更多相关文章
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- 转:RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- RabbitMQ基础知识详解
什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中 ...
- RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙
消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以 ...
- RabbitMQ基础知识(转载)
RabbitMQ基础知识(转载) 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需 ...
- (转)rabbitMQ基础知识及命令语句
摘要: 整理rabbitmq的用户管理相关知识,备忘 安装最新版本的rabbitmq(3.3.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败. ...
- 【转载】RabbitMQ基础知识
本文转自: https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message ...
- RabbitMQ 基础知识
1. 背景 RabbitMQ 是一个由 erlang 开发的AMQP 开源实现,erlang语言天生具备高并发的特性,而且他的管理界面用起来十分方便. 基础概念 讲解基础概念的前面,我们先来整体构造一 ...
- RabbitMQ框架构建系列(二)——RabbitMQ基础知识介绍
上一篇记录了一下AMQP协议,RabbitMQ是一个Erlang开发的AMQP协议的开源实现.这一篇简单的介绍一下RabbitMQ的基本原理. 一.RabbitMQ的特点 1.可靠性:RabbitMQ ...
- RabbitMQ基础知识及Linux安装
RabbitMQ: RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现. AMQP协议: AMQP,即Advanced Message Qu ...
随机推荐
- istio kiali 亲和性调度
一.节点调度 在开始 kiali 亲和性调度之前,先演示一个简单的例子介绍 pod 选择调度到指定 node: 节点打标 使用命令查看当前所有 k8s 节点: [root@k8s-master ~]# ...
- Vue自动化路由(基于Vue-Router)开篇
vue自动化路由 好久不见~ 若羽又开篇Vue的内容了. 年初的时候发布了第一版的ea-router自动化路由库,欢迎大家安装使用.[Github地址] [npm地址] 经历一年的使用.还是发现了不少 ...
- 图像处理 jpg png gif svg
jpg 图像格式 高压缩的,除了文字,线条外,用jpg 处理 GIF 图像格式 高压缩的,动图 PNG 图像格式 PNG是一种可携式网络图像格式.PNG一开始便结合GIF及JPG两家之长,打算一举取 ...
- 风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞
风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞 0x03 任意文件下载漏洞 一些网站由于业务需求,往往需要提供文件下载功能,但若对用户下载的文件不做限制,则恶意用户就能够下载任意敏感文件, ...
- 浅谈.NET技术公司的实习生培养
浅谈.NET技术公司的实习生培养 背景 近几年.NET开发者市场的越发不景气,一毕业就选择.NET技术的开发者更是少之又少.一方面是公司效益的日益提高,一方面却是招聘优秀人才的速度总是赶不上公司发展的 ...
- LeetCode561 数组拆分 I
给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大. 示例 ...
- Mac pycharm更换版本后打不开
1.第一步:先输入: cd /Applications/PyCharm.app/Contents/MacOS 2.第二步:查看无法打开pycharm的原因,需要输入:c./pycharm 3.第三 ...
- 串口使用Pipeline时诡异的ReadOnlySequence问题
借鉴之前的Pipeline的操作方式,现在目标是给串口读取操作也使用上Pipeline.稍微改造一下,以下代码可以直接运行. 协议为使用连续的4个0XFF作为结尾,没有头标志.数据总长为68位定长. ...
- xray—学习笔记
长亭xray扫描器 简介 xray (https://github.com/chaitin/xray) 是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器,支持主动.被动多种扫描方式,自备盲打平台.可以 ...
- IE浏览器直接在页面中显示7z文件而不是下载问题解决
IE浏览器中输入7z文件的完整下载URL后,不是保存文件,而是直接在页面中显示(当然是乱码) 这是因为浏览器对不同的资源文件处理的方式不同,例如图片文件,一般会直接打开,所以我们可以不用7z,使用zi ...