RabbitMQ 知识点

mac下 rabbitmq 安装:

  1. brew命令
brew install rabbitmq

注意: rabbitmq的安装目录: /usr/local/Cellar/rabbitmq/3.6.6
2. rabbitmq 启动
进入到 /usr/local/Cellar/rabbitmq/3.6.6,执行

sbin/rabbitmq-server
  1. rabbitmq 启动插件
    待RabbitMQ 的启动完毕之后,另起终端进入cd /Users/lidong/javaEE/rabbitmq_server-3.6.6/sbin 。启动插件:
 sudo ./rabbitmq-plugins enable rabbitmq_management(执行一次以后不用再次执行)
  1. 登陆管理界面
    浏览器输入:http://localhost:15672/
    账号密码初始默认都为guest

概念介绍:

Broker:简单来说就是消息队列服务器实体。
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
producer:消息生产者,就是投递消息的程序。
consumer:消息消费者,就是接受消息的程序。
channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

使用流程

AMQP模型中,消息在producer中产生,发送到MQ的exchange上,exchange根据配置的路由方式发到相应的Queue上,Queue又将消息发送给consumer,消息从queue到consumer有push和pull两种方式。 消息队列的使用过程大概如下:

  1. 客户端连接到消息队列服务器,打开一个channel。
  2. 客户端声明一个exchange,并设置相关属性。
  3. 客户端声明一个queue,并设置相关属性。
  4. 客户端使用routing key,在exchange和queue之间建立好绑定关系。
  5. 客户端投递消息到exchange。

特性:

  1. broker的持久化:exchange和queue声明为durable时,exchange和queue的配置会在服务端磁盘保存起来,这样在服务停掉重启后,exchange和queue以及其相应的binding等配置不会丢失;
  2. message的持久化:当message的deliver mode attribute(message properties)设置为2时,每个未被消费的message将被保存在磁盘中,在服务重启后仍能保存。
    message在文件中的保存参考:http://my.oschina.net/hncscwc/blog/182083
  3. cluster:RabbitMQ支持多个nodes(每个nodes是一个RabbitMQ实例)组成一个cluster,访问cluster中的任意一个node的效果是相同的,也就是说任何一个message都可以在任意一个nodes上生产和消费(生产或消费的message会在nodes间中转)。
  4. mirrored-queue:RabbitMQ在cluster的基础上,支持同一个queue的message同时存储在多个nodes上,这样当部分节点失效时,可保证message和broker的配置不丢失。

rabbitmq 学习资料

资料 网址
RabbitMQ 概念与Java例子 http://www.cnblogs.com/stormli/p/rabbitmq.html
原文地址:https://www.cnblogs.com/cag2050/p/8034157.html