Rabbitmq单机与集群的安装

Rabbitmq单机安装步骤

1.安装epel-release:yum -y install epel-release

2.安装socat:yum install socat

3.将erlang-20.1.7-1.el6.x86_64.rpm和rabbitmq-server-3.7.0-1.el6.noarch.rpm拷贝到/var/local/rabbitmq路径下

4.安装erlang:yum install erlang-20.1.7-1.el6.x86_64.rpm

5.安装Rabbitmq:yum install rabbitmq-server-3.7.0-1.el6.noarch.rpm

注:第5步可能出现如下错误:

Rabbitmq单机与集群的安装_第1张图片

解决:

  1. 依次执行:chattr -i /etc/passwd,chattr -i /etc/shadow,chattr -i /etc/group,chattr -i /etc/gshadow
  2. 重新安装:yum install rabbitmq-server-3.7.0-1.el6.noarch.rpm

6、修改rabbitmq.conf下的management.listener.ip字段,rabbitmq-env.conf下的NODENAME字段。

7、安装tcp mqtt插件:rabbitmq-plugins enable rabbitmq_mqtt

8、安装websocket mqtt插件:rabbitmq-plugins enable rabbitmq_web_mqtt

9、安装web管理插件:rabbitmq-plugins enable rabbitmq_management

10、启动:service rabbitmq-server start

注:启动可能失败,出现下面的错误log(log在/var/log/rabbitmq路径下)

{error,"Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces",[{auth,init_cookie,0,[{file,"auth.erl"},{line,286}]},{auth,init,1,[{file,"auth.erl"},{line,140}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,365}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,333}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}

解决方案是需要设置cookie权限,并重新启动:

  1. chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
  2. chmod 600 /var/lib/rabbitmq/.erlang.cookie

11、创建用户(在mq启动的情况下才能执行):因为缺省的guest/guest用户只能在本地登录,所以先用命令行创建一个admin/admin,并让它成为管理员。使用命令:

  1. rabbitmqctl add_user 用户名 密码
  2. rabbitmqctl set_user_tags 用户 administrator

12、通过浏览器访问:http://ip:24596,使用刚创建的用户登录

13、使用JAVA客户端访问,需要设置账户的访问权限,使用命令:rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*"

Rabbitmq集群部署

1、照上述步骤搭建单台rabbitmq

2、查看节点集群状态,可以看到现在集群都只有各自的单点:rabbitmqctl cluster_status

3、集群中一共有2台rabbitmq 分别为[email protected][email protected]。选择[email protected]加入[email protected]作为一个完整的集群,将 [email protected]的Cookie 文件复制到[email protected](Erlang Cookie 文件路径:/var/lib/rabbitmq/.erlang.cookie。)

4.重启[email protected]

5.在[email protected]服务器上执行下述命令:

  1. rabbitmqctl stop_app
  2. rabbitmqctl join_cluster [email protected]
  3. rabbitmqctl start_app
  4. rabbitmqctl cluster_status

Rabbitmq常用操作命令

1.添加vhost

rabbitmqctl add_vhost "$vhost"

2.设置vhost权限

rabbitmqctl set_permissions -p "$vhost" bkadmin ".*" ".*" ".*"

3设置vhost的队列的ttl

rabbitmqctl set_policy expiry -p wsrtc.vpclient_test.com ".*" '{"expires":100000}' --apply-to queues

4.查看集群状态

rabbitmqctl cluster_status

5.查看用户下的vhost的权限

rabbitmqctl list_user_permission 用户名

最后

Rabbitmq天然兼容支持ipv4和ipv6,并且配置上不需要做任何改动,只需客户端将ipv4改成ipv6即可

#ipv4连接

2018-09-18 14:43:24.040 [info] <0.5992.0> accepting MQTT connection <0.5992.0> (10.8.225.78:33466 -> 10.8.225.76:8257)

2018-09-18 14:44:50.772 [info] <0.6022.0> MQTT vhost picked using plugin configuration or default

2018-09-18 14:44:55.790 [info] <0.6022.0> accepting MQTT connection <0.6022.0> (10.8.225.76:44067 -> 10.8.225.76:8257)

2018-09-18 14:45:23.466 [info] <0.5992.0> MQTT detected network error for "10.8.225.78:33466 -> 10.8.225.76:8257": peer closed TCP connection

2018-09-18 14:45:44.454 [info] <0.6022.0> MQTT detected network error for "10.8.225.76:44067 -> 10.8.225.76:8257": peer closed TCP connection

2018-09-18 14:47:33.365 [info] <0.6066.0> MQTT vhost picked using plugin configuration or default

#ipv6连接

2018-09-18 14:47:38.378 [info] <0.6066.0> accepting MQTT connection <0.6066.0> ([fc00:a08:e100::df]:41968 -> [fc00:a08:e100::df]:8257)

2018-09-18 14:47:56.337 [info] <0.6088.0> MQTT vhost picked using plugin configuration or default

2018-09-18 14:48:01.347 [info] <0.6088.0> accepting MQTT connection <0.6088.0> ([fc00:a08:e100::de]:39128 -> [fc00:a08:e100::df]:8257)

2018-09-18 14:48:17.311 [info] <0.6066.0> MQTT detected network error for "[fc00:a08:e100::df]:41968 -> [fc00:a08:e100::df]:8257": peer closed TCP connection

2018-09-18 14:48:18.570 [info] <0.6088.0> MQTT detected network error for "[fc00:a08:e100::de]:39128 -> [fc00:a08:e100::df]:8257": peer closed TCP connection

 

你可能感兴趣的:(消息队列)