RabbitMq安装(单点与集群)rabbitMq以及状态查询

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
集群进入某个节点查看指令:rabbitmqctl cluster_status
 
 
单机版:
docker run -d --name rabbit \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin  \
-p 15672:15672  \
-p 5672:5672  \
-p 25672:25672 \
-p 61613:61613 \
-p 1883:1883 \
rabbitmq:management
<br><br>

 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
集群安装   --hostname  rabbit1指定主机名  本机安装  一机多例也可以不指定   
镜像集群可以把RABBITMQ_ERLANG_COOKIE='rabbitcookie' \都写成一样的,这样就可以保证每个节点一致,从而达成集群
 
docker run -d \
--hostname rabbit1 \
--name myrabbit1 \
-p 15672:15672 -p 5672:5672  \
-e RABBITMQ_DEFAULT_USER=admin   \
-e RABBITMQ_DEFAULT_PASS=admin \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie'  \
rabbitmq:management
 
 
docker run -d \
--hostname rabbit2 \
--name myrabbit2 \
-p 5673:5672  \
-e RABBITMQ_DEFAULT_USER=admin   \
-e RABBITMQ_DEFAULT_PASS=admin \
 --link myrabbit1:rabbit1 \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
rabbitmq:management
 
 
docker run -d  \
 --hostname rabbit3 \
--name myrabbit3 \
-p 5674:5672    \
-e RABBITMQ_DEFAULT_USER=admin  \
 -e RABBITMQ_DEFAULT_PASS=admin \
 --link myrabbit1:rabbit1 \
--link myrabbit2:rabbit2 \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
rabbitmq:management
 
 
–link:将多个容器链接到一起
erlang Cookie值必须相同,也就是RABBITMQ_ERLANG_COOKIE参数的值必须相同
 
 
容器端口5672  5673  5674  映射  
 
 
4.绑定节点
 
rabbitmqctl reset  清空当前节点数据防止绑定失败
 
rabbitmqctl join_cluster --ram rabbit@rabbit1   都关联rabbit1进行绑定
 
 
 
 
设置节点1:
docker exec -it myrabbit1 bash
rabbitmqctl stop_app
rabbitmqctl reset    
rabbitmqctl start_app
exit
 
设置节点2:参数--ram表示设置为内存节点
 
docker exec -it myrabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit
 
设置节点3:参数--ram表示设置为内存节点
 
 
docker exec -it myrabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit
 
查看你集群状态:进入某个实例节点 输入这个指令即可查看集群信息  rabbitmqctl cluster_status
<br><br>再加一个集群点:<br><br>docker run -d  \<br> --hostname rabbit4 \<br>--name myrabbit4 \<br>-p 5675:5672    \<br>-e RABBITMQ_DEFAULT_USER=admin  \<br> -e RABBITMQ_DEFAULT_PASS=admin \
 --link myrabbit1:rabbit1 \<br>--link myrabbit2:rabbit2 \<br>--link myrabbit3:rabbit3 \<br>-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \<br>rabbitmq:managementdocker exec -it myrabbit4 bash<br>rabbitmqctl stop_app<br>rabbitmqctl reset<br>rabbitmqctl join_cluster rabbit@rabbit1<br>rabbitmqctl start_app<br>exit剔除4节点,进入rabbit4的镜像  执行如下操作<br>rabbitmqctl stop_app<br>rabbitmqctl reset<br><br><br><br>搭建rabitmq附加参数 -v /data/rabbitmq01:/var/lib/rabbitmq:z \<br><br>如下样例:引用:https://blog.csdn.net/qq_40378034/article/details/89788708 这偏文章的见解<br>docker run -d --hostname rabbitmq1   \
              --add-host="rabbitmq1":192.168.3.92 \    所在机器的IP
              --add-host="rabbitmq2":192.168.3.93 \    <code class="shell  language-shell">所在机器的IP</code>
              --name rabbit1\
              --restart=always\
              -p "4369:4369" \
              -p "5672:5672"  \
              -p "15672:15672"  \
              -p "25672:25672"  \
              -v /data/rabbitmq01:/var/lib/rabbitmq:z \
              -e RABBITMQ_DEFAULT_USER=jffwuser \
              -e RABBITMQ_DEFAULT_PASS=jffw123  \
              -e RABBITMQ_ERLANG_COOKIE='jffwcookie' \
             erikopa/rabbitmq-management-x-delayed-message
  

--log-opt max-size=10m 日志文件单个最大10M

--log-opt max-file=3 日志文件最多保留3个

 

给节点添加用户其权限:

 

1
2
3
rabbitmqctl -n rabbit1 add_user wb admin
rabbitmqctl -n rabbit1 set_user_tags wb administrator
rabbitmqctl  -n rabbit1 set_permissions -p / wb  ".*" “.*” ".*"查看用户列表:rabbitmqctl list_users

 

 

1
引用:https://blog.csdn.net/qq_40378034/article/details/89788708 这偏文章的见解<br><br>RabbitMQ中的每一个节点,不管是单一节点系统或者集群中的一部分,要么是内存节点,要么是磁盘节点。<br>内存节点将所有的队列、交换机、绑定关系、用户、权限和vhost的元数据定义都存储在内存中,而磁盘节点则将这些信息存储到磁盘中。<br>单节点的集群中必然只有磁盘类型的节点,否则当重启RabbitMQ之后,所有关于系统的配置信息都会丢失。不过在集群中,可以选择配置部分节点为内存节点,这样可以获得更高的性能<br><br>RabbitMQ只要求在集群中至少有一个磁盘节点,所有其他节点可以是内存节点。当节点加入或者离开集群时,它们必须将变更通知到至少一个磁盘节点。<br>如果只有一个磁盘节点,而且刚好是它崩溃了,那么集群可以继续发送或者接收消息,但是不能执行创建队列、交换机、绑定关系、用户,以及更改权限、添加或者删除集群节点的操作了。<br>也就是说,如果集群中唯一的磁盘节点崩溃,集群仍然可以保持运行,但是直到将该节点恢复到集群前,无法更改任何东西。所以在建立集群的时候应该保证有两个或者多个磁盘节点的存在<br><br>在内存节点重启后,它们会连接到预先配置的磁盘节点,下载当前集群元数据的副本。当在集群中添加内存节点时,确保告知其所有的磁盘节点。<br>只要内存节点可以找到至少一个磁盘节点,那么它就能在重启后重新加入集群中为了确保集群信息的可靠性,建议全部使用磁盘节点<br>

 

 

多机器部署多应用:rabbitcookie 里面的值要保持一致

posted @   余生请多指教ANT  阅读(1812)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示