centos 安装rabbitmq 集群镜像队列模式

IP HOSTNAME
192.168.140.11 rabbitmq01
192.168.140.12 rabbitmq02

#以下操作两台服务器均需执行

#修改主机名
vim /etc/hostname
rabbitmq01
#修改hosts文件
cat >> /etc/hosts
192.168.140.11 rabbitmq01
192.168.140.12 rabbitmq02
# 配置好yum源
cd /etc/yum.repos.d && mkdir back
mv *.repo back
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
# 下载 rabbit mq包
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
# 安装rabbitmq
yum -y localinstall rabbitmq-server-3.6.6-1.el7.noarch.rpm 
#添加开机启动
systemctl enable rabbitmq-server.service
#安装管理插件
rabbitmq-plugins enable rabbitmq_management

The following plugins have been enabled: mochiweb webmachine
rabbitmq_web_dispatch amqp_client rabbitmq_management_agent
rabbitmq_management

Applying plugin configuration to rabbit@rabbitmq01… failed. * Could
not contact node rabbit@rabbitmq01. Changes will take effect at
broker restart. * Options: --online - fail if broker cannot be
contacted.
–offline - do not try to contact broker.

#为保证数据安全,建议您删除默认用户。RabbitMQ默认的账号用户名和密码都是guest

#启动rabbitmq
systemctl start rabbitmq-server
#删除默认用户
rabbitmqctl delete_user guest
# 创建一个管理员账号 # rabbitmqctl add_user <用户名> <密码>
rabbitmqctl add_user admin huxuezheng
rabbitmqctl set_user_tags admin  administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
启用RabbitMQ的web管理界面
rabbitmq-plugins enable rabbitmq_management

登陆网页 http://192.168.140.11:15672
centos 安装rabbitmq 集群镜像队列模式_第1张图片

#停止rabbitmq服务
rabbitmqctl stop

#定义一台RabbitMq01 作为主节点,将主节点的cookie复制给其他节点

#在Rabbitmq01上操作,文件(.erlang.cookie)同步
scp -rp /var/lib/rabbitmq/.erlang.cookie 192.168.140.12:/var/lib/rabbitmq/
#启动rabbitmq服务
rabbitmq-server -detached

Warning: PID file not written; -detached was passed.

查看服务端口是否监听
lsof -i :15672

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME beam.smp
9102 rabbitmq 49u IPv4 44936 0t0 TCP *:15672 (LISTEN)

在 rabbitmq02 执行操作
#停止rabbit mq 应用
rabbitmqctl stop_app

Stopping node rabbit@rabbitmq02 …

在rabbitmq02执行操作

RabbitMQ对于queue中的message的保存方式有两种方式:disc和ram。如果采用disc,则需要对exchange/queue/delivery
mode都要设置成durable模式。Disc方式的好处是当RabbitMQ失效了,message仍然可以在重启之后恢复。而使用ram方式,RabbitMQ处理message的效率要高很多,ram和disc两种方式的效率比大概是3:1。所以如果在有其它HA手段保障的情况下,选用ram方式是可以提高消息队列的工作效率的。*提示:
RAM节点仅将其元数据保留在内存中,如果群集停止,该节点的所有数据将会丢失。

在实际生产中,为了提高性能,不需要所有节点都是disc的节点,如果是3节点的情况下,可以主节点做disc,2个副节点做RAM。
不加参数默认是disc

rabbitmqctl join_cluster  rabbit@rabbitmq01
在两台服务器分别执行
rabbitmqctl start_app

配置镜像队列

在两台服务器分别执行 
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

centos 安装rabbitmq 集群镜像队列模式_第2张图片
centos 安装rabbitmq 集群镜像队列模式_第3张图片

附:修改节点类型

rabbitmqctl -n rabbit@rabbitmq02 stop_app
rabbitmqctl -n rabbit@rabbitmq02 change_cluster_node_type ram 
rabbitmqctl -n rabbit@rabbitmq02 start_app

以上

你可能感兴趣的:(linux技术分享,rabbitmq,linux,centos)