RabbitMQ相关概念的理解
1、什么是消息?
消息就是程序(服务)之间传递的数据(图/文/声/像)。
2、MQ是什么?
MQ(MessageQueue)是指消息队列亦或消息总线。是消息的容器,这个容器的策略是FIFO(先进先出)。
一般消息从服务A直接发送到服务B,则成为实时通信;而消息由A发出到某个容器(容器的规则是先进先出,相当于一个队列),再由容器将消息分发给B,则为非实时通信(异步通信)。这个容器就是消息队列。
MQ的优势
异步:将请求的数据存于队列中,消费者异步处理数据。
削峰:可以在请求高峰时限制直接处理请求数,从而避免因为高峰请求而导致系统崩溃。
解耦:相互依赖的模块(服务)之间,不在直接依赖而是通过mq来传递消息,从而达到解耦的目的。
使用MQ时需要注意的地方
1、消息丢失
2、消息重发
3、AMQP是什么?
AMQP(Advanced Message Queuing Protocol)是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。AMQP协议是一种二进制协议,提供客户端应用与消息中间件之间异步、安全、高效地交互。
AMQP可划分为三层结构

1)、实体层:定义数据实体,通常成为command或者Event。队列消费者根据实体类型定义处理业务。
2)、会话层:消息队列服务与客户端的会话,为消息传递提供保障
3)、传输层:负责消息的准确传递。
AMQP的关键对象概念
1 Server:接收客户端的连接,实现AMQP实体服务。
2 Connection:连接,应用程序与Server的网络连接,TCP连接。
3 Channel:信道,消息读写等操作在信道中进行。客户端可以建立多个信道,每个信道代表一个会话任务。便于管理连接,是实现连接复用的方式,减少频繁创建或者回收连接的性能开销。
4 Message:消息,应用程序和服务器之间传送的数据,消息可以非常简单,也可以很复杂。有Properties和Body组成。Properties为外包装,可以对消息进行修饰,比如消息的优先级、延迟等高级特性;Body就是消息体内容。
5 Virtual Host:虚拟主机,用于逻辑隔离。一个虚拟主机里面可以有若干个Exchange和Queue,同一个虚拟主机里面不能有相同名称的Exchange或Queue。
6 Exchange:交换器,接收消息,按照路由规则将消息路由到一个或者多个队列。如果路由不到,或者返回给生产者,或者直接丢弃。RabbitMQ常用的交换器常用类型有direct、topic、fanout、headers四种,后面详细介绍。
7 Binding:绑定,交换器和消息队列之间的虚拟连接,绑定中可以包含一个或者多个RoutingKey。
8 RoutingKey:路由键,生产者将消息发送给交换器的时候,会发送一个RoutingKey,用来指定路由规则,这样交换器就知道把消息发送到哪个队列。路由键通常为一个“.”分割的字符串,例如“com.rabbitmq”。
9 Queue:消息队列,用来保存消息,供消费者消费。
4、RabbitMQ
RabbitMQ是使用Erlang语言来编写的,实现了高级消息队列协议(AMQP)的开源消息代理软件(消息队列中间件)。
RabbitMQ相关概念的理解的更多相关文章
- RabbitMQ 相关概念
RabbitMQ 整体上是一个生产者与消费者模型,主要负责接收.存储和转发消息.可以把消息传递的过程想象成:当你讲一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上,RabbitMQ ...
- RabbitMQ实战:理解消息通信
RabbitMQ是一个开源的消息代理和队列服务器,可以通过基本协议在完全不同的应用之间共享数据,可以将作业排队以便让分布式服务进行处理. 本篇介绍下消息通信,首先介绍基础概念,将这些概念映射到AMQP ...
- RabbitMQ 相关概念和方法详解
名词解释 ConnectionFactory: 与 RabbitMQ 服务器连接的管理器. Connection: 与 RabbitMQ 服务器的连接. Channel: 与 Exchange 的连接 ...
- RabbitMq基本概念理解
RabbitMQ的基本概念 RabbitMQ github项目地址 RabbitMQ 2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的 消息中间件 ...
- 关于RabbitMQ的简单理解
说明:想要理解RabbitMQ,需要先理解MQ是什么?能做什么?然后根据基础知识去理解RabbitMQ是什么.提供了什么功能. 一.MQ的简单理解 1. 什么是MQ? 消息队列(Message Que ...
- RabbitMQ的一些理解和笔记
在这篇博客中,简单记录一下 rabbitmq 服务器中一些基本的概念. Connection: connection 为 TCP连接,是我们的应用程序和RabbitMQ服务器真正发送和接收数据的地方. ...
- 消息中间件-RabbitMq相关概念及原理介绍【图文并茂】
消息中间件 消息中间件的作用 解耦:消息中间件在服务之间插入了一个隐含的.基于数据的接口层.两边的服务处理过程都要实现这一接口,这允许我们独立的扩展或修改两边的处理过程,只要确保他们遵守相同的规范约束 ...
- 关于RabbitMQ交换机的理解
RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.消息中间件主要用于组件之间的解耦,消 ...
- 3.RabbitMQ相关概念的杂谈
1.vhost,为什么我要有这个vhost呢? 这是因为可能有很多组使用RabbitMQ,有产品组,用户组,vhost,虚拟主机的意思,可以避免命名冲突. 2.Exchange,交换机 有四种交换机 ...
随机推荐
- Layman 对PHP源码进行加密保护
加密软件(php_screw) >下载网站:http://sourceforge.net/projects/php-screw/ >描述:php文件通常以文本格式存贮在服务器端, 很容易被 ...
- 【题解】[国家集训队]happiness
题目戳我 \(\text{Solution:}\) 显然还是一个分组问题.对于理科和文科我们可以看出最小割模型,而处理同时选择某一学科的时候,需要我们根据套路建立虚点处理. 同 小M的作物 一题,这题 ...
- devops-jenkins部署和基本使用
1. jenkins部署和基本使用 1.1) 先关闭centos 7的自带防火墙和selinux [root@test-2 ~]# /bin/systemctl stop firewalld [ro ...
- IDEA设置maven修改settings.xml配置文件无法加载仓库
作为初学者配置maven一般网上搜索.然后你就看到各种配置文件片段,首先配置镜像,然后配置仓库.完事后再IDEA里面配置下maven的路径和配置文件路径. 这些文章属实坑爹,完全没讲一个重要的配置就是 ...
- React Ref 其实是这样的
大家好,我是Mokou,好久没有冒泡了,最近一直在看研究算法和数据结构方面的东西,但是似乎很多前端不喜欢看这种东西,而且目前本人算法方面也很挫,就不献丑了. 当然了,最近也开始研究React了,这篇文 ...
- .NET Core+MongoDB集群搭建与实战
目录 安装 MongoDB apt 直接安装(方法1) apt 仓库安装(方法2) 方法1.2启动 MongoDB 通过二进制包安装(方法3) 安装依赖 deb 安装 MongoDB tgz 安装 M ...
- Windows Server 设置自动登陆
前言 Windows Server 相信很多人都在使用,但是系统每次登陆都比较麻烦,能否设置自动登陆呢?有兴趣一起来学习一下吧!的自动登陆方法也比较多,在此分享一个实用简单的,通过命令来设置" ...
- XSS攻击 js 脚本注入
原文地址:http://www.cnblogs.com/robot/archive/2009/04/15/1436107.html 1.不要相信Request.QueryString: 相信在asp时 ...
- react基础准备知识
1.模块化:将重复的(可复用的)代码抽离为单个模块 2.组件化:将重复的 (可复用的) 的前端页面元素抽离单个组件 * Vue中实现组件化:1.Vue.component() 2.Vue.extend ...
- BOOST 条件变量使用
代码: // boost库 条件变量 使用测试 #include <iostream> #include <boost/thread.hpp> using namespace ...