过多的描述就不扯了,本文主要记录RabbitMQ的安装以及简单使用。本次安装是为了实现spring cloud的消息总线:SpringCloud全家桶学习之消息总线---SpringCloud Bus

一、RabbitMQ安装

1.下载Erlang的rpm包

  RabbitMQ是Erlang语言编写,所以Erang环境必须要有,注:Erlang环境一定要与RabbitMQ版本匹配:https://www.rabbitmq.com/which-erlang.html

  Erlang下载地址:https://www.rabbitmq.com/releases/erlang/(根据自身需求及匹配关系,下载对应rpm包)

2.下载RabbitMQ的rpm包

  RabbitMQ下载地址:https://www.rabbitmq.com/releases/rabbitmq-server/(根据自身需求及匹配关系,下载对应rpm包)

3.下载socat的rpm包

  rabbitmq安装依赖于socat,所以需要下载socat。

  socat下载地址:http://repo.iotti.biz/CentOS/6/x86_64/socat-1.7.3.2-1.el6.lux.x86_64.rpm

  根据自身需求下载对应系统socat依赖:(http://repo.iotti.biz/CentOS/)

4.分别安装Erlang、Socat、RabbitMQ(一定按照顺序!)

  一定按照以下顺序安装

  ①rpm -ivh erlang-18.3-1.el6.x86_64.rpm

  ②rpm -ivh socat-1.7.3.2-1.el6.lux.x86_64.rpm

  ③rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

5.配置rabbitmq:vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app

  

6.安装管理插件:rabbitmq-plugins enable rabbitmq_management

6.启动RabbitMQ,浏览器访问:http://192.168.64.128:15672/,出现以下界面说明安装完成!

  ①cd /usr/lib/rabbitmq/bin

  ②./rabbitmq-server start

二、RabbitMQ的5种模式

1、简单模式(一对一的发送)

①生产者发送消息给交换机

②交换机接收消息,如果交换机没有绑定队列,消息扔进垃圾桶

③队列接收消息,存储在内存,等待消费者连接监听获取消息,消费成功后,返回确认

一些场景:短信,QQ

2、工作模式(资源的争抢)

①生产者将消息发送给交换机

②交换机发送给绑定的后端队列

③一个队列被多个消费者同时监听,形成消息的争抢结构:根据消费者所在的系统的空闲、性能争抢队列中的消息

一些场景:抢红包

3、发布订阅(交换机类型为fanout)

注:图中未画消费者

①交换机定义类型为:fanout

②交换机绑定多个队列

③生产者将消息发送给交换机,交换机复制同步消息到后端所有的队列中

一些场景:邮件群发

4、路由模式(交换机类型:direct)

①交换机定义类型为:direct

②交换机绑定多个队列,队列绑定交换机时,给交换机提供了一个routingkey(路由key)

③发布订阅时,所有fanout类型的交换机绑定后端队列用的路由key都是“”;在路由模式中需要绑定队列时提供当前队列的具体路由key

一些场景:错误消息的接收和提示

5、主题模式(交换机类型:topic)

①交换机定义类型为:topic

②交换机绑定多个队列,与路由模式非常相似,做到按类划分消息

③路由key队列绑定的通配符如下:#表示任意字符串,*表示没有特殊符号(单词)的字符串

最新文章

  1. Android SDK Tools 更新
  2. spring mvc <mvc:default-servlet-handler /> 。
  3. 忧桑三角形,调了半天,真忧桑TAT
  4. 添加和删除hadoop集群中的节点
  5. 狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(2)
  6. 总结:ADO.NET在开发中的部分使用方法和技巧
  7. 下载好一个android软件之后,怎样自动提示安装?
  8. Java——(四)Collection之Set集合TreeSet类
  9. qt绘制设备
  10. 【python】函数参数关键字索引、参数指定默认值、搜集参数
  11. echarts饼图点击事件
  12. Leetcode_121_Best Time to Buy and Sell Stock
  13. asp.net core 使用 web deploy 部署网站
  14. SpringCloud基于消息总线的配置中心
  15. Navicat远程连接不上mysql解决方案
  16. Spring Security(三)
  17. mysql安装管理 -> 编译&yum_02
  18. 与平台无关的类型,int8_t,uint8_t
  19. 常用HQL(Hibernate Query Language)查询
  20. 图解Java常用数据结构(一)

热门文章

  1. 使用Unity3d和C#的一些属性来设置特殊行为
  2. scw——01 java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMake
  3. 【算法学习记录-排序题】【PAT A1016】Phone Bills
  4. JS中使用lambda筛选list
  5. 2.17NOIP模拟赛(by hzwer) T1 小奇挖矿
  6. Rumor
  7. vue中mixins的理解及应用
  8. 关于static 关键字的总结
  9. library 中的internal power为何为负值?
  10. python中pip问题