Open afredlyj opened 8 years ago
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-generic-unix-3.6.1.tar.xz
xz -d rabbitmq-server-generic-unix-3.6.1.tar.xz tar xvf rabbitmq-server-generic-unix-3.6.1.tar
CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
# rabbitmq-env.conf # rabbitmq.config不能添加文件后缀,否则无法识别 RABBITMQ_NODE_PORT=6672 CONFIG_FILE=/usr/local/rabbitmq_server-3.6.1/etc/rabbitmq/rabbitmq #rabbitmq.config
./rabbitmq-plugins enable rabbitmq_management
rabbitmq默认会创建guest/guest帐号,但是该帐号只具有本地访问权限,如果要远程访问,有两种方案:
./rabbitmqctl add_user root root ./rabbitmqctl set_user_tags root administrator ./rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
{loopback_users, [<<"guest">>]}
需要改为:
{loopback_users, []}
通过rabbitmq-env.conf设置配置文件路径:
CONFIG_FILE=/usr/local/rabbitmq_server-3.6.1/etc/rabbitmq/rabbitmq RABBITMQ_NODE_PORT=8672 RABBITMQ_NODENAME=rabbit8672@dev1
注意,文件名不包含文件名后缀。如果在一台服务器上部署多个节点,需要设置RABBITMQ_NODE_PORT和RABBITMQ_NODENAME,注意配置的格式。
RABBITMQ_NODE_PORT
RABBITMQ_NODENAME
http://www.wmrichards.com/amqp.pdf
http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benchmark-activemq-rabbitmq-hornetq-qpid-apollo/
Rabbitmq集群会将所有的数据和状态复制到集群中的所有节点,除了Queue以外,如果需要复制Queue到所有节点,需要使用HA。
集群节点之间是如何相互认证的? 通过Erlang Cookie,相当于共享秘钥的概念,长度任意,只要所有节点都一致即可。 rabbitmq server在启动的时候,erlang VM会自动创建一个随机的cookie文件。 cookie文件的位置: /var/lib/rabbitmq/.erlang.cookie 或者/root/.erlang.cookie 为保证cookie的完全一致,采用从一个节点copy的方式。
RabbitMQ的高可用方案是在版本2.6.0引入的,需要注意的是,RabbitMQ HA并不是万能的,部分功能HA方案并不支持:
从上面三点可以看出,RabbitMQ 的HA方案是为了优化Queue单点的问题,利用HA搭建Queue的master-slave模型,避免节点异常导致的不可用。 官网文档相关说明 。
如果多个节点都部署在同一台硬件服务器上,则需要修改相关的端口,比如http和tcp的监听端口。
RabbitMQ
文档
安装
访问控制
rabbitmq默认会创建guest/guest帐号,但是该帐号只具有本地访问权限,如果要远程访问,有两种方案:
需要改为:
配置文件
通过rabbitmq-env.conf设置配置文件路径:
注意,文件名不包含文件名后缀。如果在一台服务器上部署多个节点,需要设置
RABBITMQ_NODE_PORT
和RABBITMQ_NODENAME
,注意配置的格式。消息持久化
JMS vs AMQP
http://www.wmrichards.com/amqp.pdf
主流MQ的压测报告
http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benchmark-activemq-rabbitmq-hornetq-qpid-apollo/
集群
Rabbitmq集群会将所有的数据和状态复制到集群中的所有节点,除了Queue以外,如果需要复制Queue到所有节点,需要使用HA。
RabbitMQ的高可用方案是在版本2.6.0引入的,需要注意的是,RabbitMQ HA并不是万能的,部分功能HA方案并不支持:
从上面三点可以看出,RabbitMQ 的HA方案是为了优化Queue单点的问题,利用HA搭建Queue的master-slave模型,避免节点异常导致的不可用。 官网文档相关说明 。
如果多个节点都部署在同一台硬件服务器上,则需要修改相关的端口,比如http和tcp的监听端口。