RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。
RabbitMQ是由RabbitMQ Technologies Ltd开发并且提供商业支持的。该公司在2010年4月被SpringSource(VMWare的一个部门)收购。在2013年5月被并入Pivotal。其实VMWare,Pivotal和EMC本质上是一家的。不同的是VMWare是独立上市子公司,而Pivotal是整合了EMC的某些资源,现在并没有上市。
RabbitMQ的官网是http://www.rabbitmq.com
百度百科amqp协议介绍https://baike.baidu.com/item/AMQP/8354716?fr=aladdin
注意:RabbitMQ是采用erlang语言开发的,所以必须有erlang环境才可以运行

 Erlang  (高并发应用) 

Erlang编程语言最初目的是进行大型电信交换设备的软件开发,是一种适用于大规模并行处理环境的高可靠性编程语言。随着多核处理器技术的日渐普及,以及互联网、云计算等技术的发展,该语言的应用范围也有逐渐扩大之势。

百度百科介绍:https://baike.baidu.com/item/Erlang%E8%AF%AD%E8%A8%80/20864044?fr=aladdin

初衷理念实现抗高并发语言

不同的项目 不同的 路径,独立的virtualhost,相互进行隔离:  客户端连接时候需要指定virtual host地址 。

更加解耦 相互进行隔离  类似于每个项目都有不同的数据库一样

添加virtual host

指定某个用户的 virtual host

AMQP(高级消息队列协议)是一个异步消息传递所使用应用层协议规范,为面向消息中间件设计,基于此协议的客户端与消息中间件可以无视消息来源传递消息,不受客户端、消息中间件、不同的开发语言环境等条件的限制;
涉及概念解释: 
Server(Broker):接收客户端连接,实现AMQP协议的消息队列和路由功能的进程;
Virtual Host:虚拟主机的概念,类似权限控制组,一个Virtual Host里可以有多个Exchange和Queue。   
Exchange:交换机,接收生产者发送的消息,并根据Routing Key将消息路由到服务器中的队列Queue。
ExchangeType:交换机类型决定了路由消息行为,RabbitMQ中有三种类型Exchange,分别是fanout、direct、topic;
Message Queue:消息队列,用于存储还未被消费者消费的消息;
Message:由Header和body组成,Header是由生产者添加的各种属性的集合,包括Message是否被持久化、优先级是多少、由哪个Message Queue接收等;body是真正需要发送的数据内容;
BindingKey:绑定关键字,将一个特定的Exchange和一个特定的Queue绑定起来。

最新文章

  1. 高可用mysql之MHA源码剖析
  2. 常见linux命令释义(第四天)——bash部分
  3. SSL在https和MySQL中的原理思考
  4. Win7中修改Chrome浏览器缓存文件目录
  5. Linux网络地址转换分析
  6. S2SH商用后台权限系统第一讲
  7. python【第十七篇】jQuery
  8. [深入React] 5.MVC
  9. CF 567C Geometric Progression
  10. linux+nginx+mysql+php高性能服务器搭建
  11. js 禁止f12、Ctrl +S 、右键
  12. oracle 中update多个字段
  13. 微信公众号之:JSSDK接入以及invalid signature等常见错误问题
  14. word常用功能
  15. Ubuntu18.04安装Tensorflow+cuda+cuDNN
  16. MySQL各个版本区别及问题总结
  17. 安装Chrome浏览器
  18. Javascript - LayUI库的流加载
  19. C# Byte[]、Image、Bitmap 之间的相互转换
  20. Hadoop学习之路(二十四)YARN的资源调度

热门文章

  1. 即将到来的Android N,将具备这些新特性
  2. 【AngularJS】Yeoman安装
  3. vuex 中关于 mapMutations 的作用
  4. java导出excel不须要额外jar包
  5. Spring学习十二----------Bean的配置之@ImportResource和@Value
  6. Chrome自带恐龙小游戏的源码研究(完)
  7. Spring里通过注解开启事物
  8. 机器学习实战之SVM
  9. mongodb distinct去重
  10. 献给写作者的 Markdown 新手指南及语法