一、安装RabbitMQ

安装直接用docker安装,如果手动安装的话比较繁琐,还要安装erlang语言的环境。在安装有docker机器上执行官网提供的指令(https://www.rabbitmq.com/download.html):docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

安装好之后 浏览器访问15672端口,可以看到web管理端。默认的是用户名密码都是guest

 二、AMQP协议(Advanced message queue protocol 高级消息队列协议)核心概念和RabbitMQ整体架构

RabbitMQ是通过Erlang语言基于AMQP协议开发的。erlang语言常用于交换机上,因为它的高效,自然rabbitMQ也很高效了。

AMQP模型描述了一套模块化的组件以及这些组件之间进行连接的标准规则,核心概念:
server:服务,又称broker,接受客户端连接,对外提供amqp实体服务

connection:连接,客户端与server的连接
channel:网络通道,几乎所有的操作都是在channel中进行的,是进行消息对象的通道,客户端可以建立多个通道,每一个channel表示一个会话任务

virtual host:虚拟主机,是一个逻辑上的概念,一个虚拟主机中可以包含多个exhange 和 message queue但是一个虚拟主机中不能有名称相同的exchange 和 message queue
 
exchange:接收发布应用程序发送的消息,并根据一定的规则将这些消息路由到消息队列
 
message queue:消息队列,存储消息,直到这些消息被消费者安全处理完为止
 
binding:定义了exchange和message queue之间的关联,提供路由规则,包含route_key
 
route_key:路由key ,作用是在交换机上通过route_key来把消息路由到某个队列上
 
RabbitMQ整体架构:
 

这些概念在rabbitMQ的web控制台都可以看见:

三、交换机详解
1.交换机属性:
name:交换机名字
type:类型:direct,topic,fanout,headers
durability:是否需要持久化

autodelete: 假如没有队列绑定到该交换机,那么该交换机会自动删除
Internal: 当前交换机是否用户rabbitmq内部使用不常用,默认为false
argurements: 扩展参数,用户扩展AMQP定制化协议
 
2.直连交换机:direct exchange  消息投递时的key与队列绑定routekey完全相同的队列上面
 
3.主题交换机:topic exchange 投递消息是可以进行key的匹配,#匹配多个单词,*匹配一个单词(用.隔开),比如队列A绑定的routekey:study.#。投递消息时设置的routekey.abc或者routekey.abc.def都可以投递到队列A上面;队列B设置的routekey:study.*,那么就只有routekey.abc可以投递到队列B
 
4.扇形交换机: fanout exchange 不会进行routekey的匹配,只要是该交换机的队列都会被投递。因为不会进行路由字符串的匹配,所以这种交换的消息投递是最快的
 
5.头部交换机:headers exchange  投递的消息头里面有一个特殊的key:“x-match”,有两个值:all(默认),发送消息的header里面的所有key都对应,才投递;any,任意一个对应就投递
 
 
 

RabbitMQ(1)---基本概念的更多相关文章

  1. 通过实例理解 RabbitMQ 的基本概念

    先说下自己开发的实例. 最近在使用 Spring Cloud Config 做分布式配置中心(基于 SVN/Git),当所有服务启动后,SVN/Git 中的配置文件更改后,客户端服务读取的还是旧的配置 ...

  2. 快速掌握RabbitMQ(一)——RabbitMQ的基本概念、安装和C#驱动

    1 RabbitMQ简介 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现,官网地址:http://www.rabbitmq.com.Ra ...

  3. RabbitMQ安装|使用|概念|Golang开发

    搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/RabbitMQ.html 手册:http://www.rabbitmq.com/getstarted.ht ...

  4. RabbitMQ 基础类和概念讲解

    转至:http://www.ostest.cn/archives/497 引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼. ...

  5. RabbitMQ(1) 核心概念

    消息中间价 消息中间价,也称消息队列,是分布式式系统中常用的中间价. 通过消息中间价传递消息,使得各个子系统解耦,异步通信. 目前业界有许多消息队列的实现,如RabbitMQ.Kafka.Active ...

  6. RabbitMQ的基本概念

    1:基本概念 ConnectionFactory(连接工厂): 生产Connection的的工厂 Connection(连接):是RabbitMQ的socket的长链接,它封装了socket协议相关部 ...

  7. RabbitMQ的基本概念与原理(一)

      1.什么是MQ? MQ全称为Message Queue, 顾名思义,即消息队列,它是一种应用程序对应用程序的通信方法.MQ是消费-生产者模型的一个典型的代表,生产者不断的往消息队列中不断写入消息, ...

  8. RabbitMq学习笔记——概念

    1.RabbitMQ简介 MQ全称为Message Queue(消息队列),是一种“应用程序”<—>“应用程序”的通信方法.MQ是一个典型的“消费”<—>“生产者”模型的代表, ...

  9. RabbitMQ 笔记-基本概念

    ConnectionFactory.Connection.Channel ConnectionFactory.Connection.Channel,这三个都是RabbitMQ对外提供的API中最基本的 ...

随机推荐

  1. ELSE 技术周刊(2017.12.25期)

    业界动态 V8 release v6.4 V8引擎发布v6.4,在速度和内存优化上又带来了一些提升.对于instanceof操作符的优化,带来了3.6x速度提升,同时使得uglify-js提高了15- ...

  2. 前端——Vue.js学习总结一

    一.什么是Vue.js 1.Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架 2.Vue.js 是前端的主流框架之一,和Angular.js.React.js 一起,并成为前端 ...

  3. P4016 负载平衡问题 网络流重温

    P4016 负载平衡问题 这个题目现在第二次做,感觉没有这么简单,可能是我太久没有写这种题目了,基本上都忘记了,所以我连这个是费用流都没有看出来. 有点小伤心,知道是费用流之后,我居然还拆点了. 这个 ...

  4. spring boot中使用AJAX请求,并将回调函数赋值给input输入框

    HTML: <script>/* $(document).ready(function(){} 页面加载事件,加载完页面之后执行 */ $(document).ready(function ...

  5. mybatis添加信息自动生成主键

    一.使用Oracle数据库 举例:添加员工的时候自动生成主键 1.在dao接口中声明方法 2.在mapper中实现该方法 需要先在数据表中创建序列 3.测试 注意:在调用过save方法之后,emp对象 ...

  6. win10卸载多余应用-通过命令行卸载

    Win10 APP 卸载方式和明细,网络最全.直接包含了编辑好的文件,可以打开编辑或直接删除,部份APP可卸载,但注释了,各位可以看情况是否删除.直接把代码复制保存扩展名为“ps1”即可直接运行,这是 ...

  7. Day_08【面向对象】扩展案例3_使用多态的形式创建缉毒狗对象,调用缉毒方法和吼叫方法

    分析以下需求,并用代码实现: 1.定义动物类: 行为: 吼叫:没有具体的吼叫行为 吃饭:没有具体的吃饭行为 2.定义缉毒接口 行为: 缉毒 3.定义缉毒狗:犬的一种 行为: 吼叫:汪汪叫 吃饭:狗啃骨 ...

  8. 【Hadoop离线基础总结】Sqoop常用命令及参数

    目录 常用命令 常用公用参数 公用参数:数据库连接 公用参数:import 公用参数:export 公用参数:hive 常用命令&参数 从关系表导入--import 导出到关系表--expor ...

  9. 设计模式GOF23大纲

    创建型模式: 单例模式,工厂模式,抽象工厂模式 结构型模式: 适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式 行为型模式: 模板方法模式,命令模式,迭代器模式,观察者模式,中介 ...

  10. 想要年薪百万,阿里Sentinel支持RESTful接口都搞不定?

    最近正准备用阿里Sentinel,发现RESTful接口支持的不是很好.有些童鞋可能对Sentinel不是很了解,我们先简单介绍一下. Sentinel简介 Sentinel是一套阿里巴巴开源的流量防 ...