CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用
<p><span><strong>rabbitmq简介</strong></span></p>
<p>
rabbitmq是一个开源的amqp实现,服务器端用erlang语言编写,支持多种客户端,如:python、ruby、.net、java、jms、c、php、actionscript、xmpp、stomp等,支持ajax。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。</p>
<p>
amqp,即advanced message queuing protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。</p>
<p>
amqp的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。</p>
<p>
<span><strong>注意事项</strong></span></p>
<p>
centos 7.x 关闭firewall</p>
<div>
<div>
<div id="highlighter_963342">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>$ systemctl stop firewalld.service </code><code># 停止firewall</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
不想关闭防火墙,就开放15672端口,设置之后可以通过网页方式管理mq</p>
<p>
安装安装iptables防火墙</p>
<div>
<div>
<div id="highlighter_694954">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>yum </code><code>install</code> <code>iptables-services</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
添加配置</p>
<div>
<div>
<div id="highlighter_745945">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code>iptables -i input -p tcp --dport 5672 -j accept</code>
</div>
<div>
<code>iptables -i input -p tcp --dport 15672 -j accept</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
保存配置</p>
<div>
<div>
<div id="highlighter_529572">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>service iptables save</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
重启</p>
<div>
<div>
<div id="highlighter_244224">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>systemctl restart iptables.service</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
设置开机自启动</p>
<div>
<div>
<div id="highlighter_257597">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>systemctl </code><code>enable</code> <code>iptables.service</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<span><strong>安装</strong></span></p>
<p>
<strong>安装 erlang</strong></p>
<p>
rabbitmq 安装需要依赖 erlang 环境</p>
<div>
<div>
<div id="highlighter_870745">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>$ </code><code>cd</code> <code>/usr/local/src</code>
</div>
<div>
<code>$ wget http:</code><code>//www</code><code>.rabbitmq.com</code><code>/releases/erlang/erlang-19</code><code>.0.4-1.el7.centos.x86_64.rpm</code>
</div>
<div>
<code>$ yum </code><code>install</code> <code>erlang-19.0.4-1.el7.centos.x86_64.rpm</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
安装 rabbitmq</p>
<div>
<div>
<div id="highlighter_735268">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>$ </code><code>cd</code> <code>/usr/local/src</code>
</div>
<div>
<code>$ wget http:</code><code>//www</code><code>.rabbitmq.com</code><code>/releases/rabbitmq-server/v3</code><code>.6.10</code><code>/rabbitmq-server-3</code><code>.6.10-1.el7.noarch.rpm</code>
</div>
<div>
<code>$ yum </code><code>install</code> <code>rabbitmq-server-3.6.10-1.el7.noarch.rpm</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
启动服务</p>
<div>
<div>
<div id="highlighter_767218">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>$ service rabbitmq-server start</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
服务状态</p>
<div>
<div>
<div id="highlighter_528604">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
<div>
18</div>
<div>
19</div>
<div>
20</div>
<div>
21</div>
<div>
22</div>
<div>
23</div>
<div>
24</div>
<div>
25</div>
</td>
<td>
<div>
<div>
<code>$ service rabbitmq-server status</code>
</div>
<div>
</div>
<div>
<code>redirecting to </code><code>/bin/systemctl</code> <code>status rabbitmq-server.service</code>
</div>
<div>
<code>● rabbitmq-server.service - rabbitmq broker</code>
</div>
<div>
<code> </code><code>loaded: loaded (</code><code>/usr/lib/systemd/system/rabbitmq-server</code><code>.service; disabled; vendor preset: disabled)</code>
</div>
<div>
<code> </code><code>active: active (running) since 一 2018-03-05 21:42:10 cst; 15s ago</code>
</div>
<div>
<code> </code><code>main pid: 2493 (beam.smp)</code>
</div>
<div>
<code> </code><code>status: </code><code>"initialized"</code>
</div>
<div>
<code> </code><code>cgroup: </code><code>/system</code><code>.slice</code><code>/rabbitmq-server</code><code>.service</code>
</div>
<div>
<code> </code><code>├─2493 </code><code>/usr/lib64/erlang/erts-8</code><code>.0.3</code><code>/bin/beam</code><code>.smp -w w -a 64 -p 1048576 -t 5000000 -stbt db -zdbbl 32000 -k </code><code>true</code> <code>-- -root </code><code>/usr/lib64/erlang</code> <code>-progname erl -- -home </code><code>/var/l</code><code>...</code>
</div>
<div>
<code> </code><code>├─2634 </code><code>/usr/lib64/erlang/erts-8</code><code>.0.3</code><code>/bin/epmd</code> <code>-daemon</code>
</div>
<div>
<code> </code><code>├─2750 erl_child_setup 1024</code>
</div>
<div>
<code> </code><code>├─2760 inet_gethost 4</code>
</div>
<div>
<code> </code><code>└─2761 inet_gethost 4</code>
</div>
<div>
</div>
<div>
<code>3月 05 21:42:07 master01 rabbitmq-server: rabbitmq 3.6.10. copyright (c) 2007-2017 pivotal software, inc.</code>
</div>
<div>
<code>3月 05 21:42:07 master01 rabbitmq-server: </code><code>## ## licensed under the mpl. see http://www.rabbitmq.com/</code>
</div>
<div>
<code>3月 05 21:42:07 master01 rabbitmq-server: </code><code>## ##</code>
</div>
<div>
<code>3月 05 21:42:07 master01 rabbitmq-server: </code><code>########## logs: /var/log/rabbitmq/rabbit@master01.log</code>
</div>
<div>
<code>3月 05 21:42:07 master01 rabbitmq-server: </code><code>###### ## /var/log/rabbitmq/rabbit@master01-sasl.log</code>
</div>
<div>
<code>3月 05 21:42:07 master01 rabbitmq-server: </code><code>##########</code>
</div>
<div>
<code>3月 05 21:42:07 master01 rabbitmq-server: starting broker...</code>
</div>
<div>
<code>3月 05 21:42:10 master01 rabbitmq-server: systemd unit </code><code>for</code> <code>activation check: </code><code>"rabbitmq-server.service"</code>
</div>
<div>
<code>3月 05 21:42:10 master01 systemd: started rabbitmq broker.</code>
</div>
<div>
<code>3月 05 21:42:10 master01 rabbitmq-server: completed with 0 plugins.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看日志</p>
<div>
<div>
<div id="highlighter_217260">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
<div>
18</div>
<div>
19</div>
<div>
20</div>
<div>
21</div>
<div>
22</div>
<div>
23</div>
<div>
24</div>
<div>
25</div>
<div>
26</div>
<div>
27</div>
<div>
28</div>
<div>
29</div>
<div>
30</div>
<div>
31</div>
<div>
32</div>
<div>
33</div>
<div>
34</div>
<div>
35</div>
<div>
36</div>
<div>
37</div>
<div>
38</div>
<div>
39</div>
<div>
40</div>
<div>
41</div>
<div>
42</div>
<div>
43</div>
<div>
44</div>
<div>
45</div>
<div>
46</div>
<div>
47</div>
<div>
48</div>
<div>
49</div>
<div>
50</div>
<div>
51</div>
<div>
52</div>
<div>
53</div>
<div>
54</div>
<div>
55</div>
<div>
56</div>
<div>
57</div>
<div>
58</div>
<div>
59</div>
<div>
60</div>
<div>
61</div>
<div>
62</div>
<div>
63</div>
<div>
64</div>
<div>
65</div>
<div>
66</div>
<div>
67</div>
<div>
68</div>
<div>
69</div>
</td>
<td>
<div>
<div>
<code>$ </code><code>less</code> <code>/var/log/rabbitmq/rabbit</code><code>\@master01.log </code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:07 ===</code>
</div>
<div>
<code>starting rabbitmq 3.6.10 on erlang 19.0.4</code>
</div>
<div>
<code>copyright (c) 2007-2017 pivotal software, inc.</code>
</div>
<div>
<code>licensed under the mpl. see http:</code><code>//www</code><code>.rabbitmq.com/</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:07 ===</code>
</div>
<div>
<code>node : rabbit@master01</code>
</div>
<div>
<code>home </code><code>dir</code> <code>: </code><code>/var/lib/rabbitmq</code>
</div>
<div>
<code>config </code><code>file</code><code>(s) : </code><code>/etc/rabbitmq/rabbitmq</code><code>.config (not found)</code>
</div>
<div>
<code>cookie </code><code>hash</code> <code>: +9losjmr5x</code><code>/9geguoed28a</code><code>==</code>
</div>
<div>
<code>log : </code><code>/var/log/rabbitmq/rabbit</code><code>@master01.log</code>
</div>
<div>
<code>sasl log : </code><code>/var/log/rabbitmq/rabbit</code><code>@master01-sasl.log</code>
</div>
<div>
<code>database </code><code>dir</code> <code>: </code><code>/var/lib/rabbitmq/mnesia/rabbit</code><code>@master01</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>memory limit </code><code>set</code> <code>to 732mb of 1831mb total.</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>enabling </code><code>free</code> <code>disk space monitoring</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>disk </code><code>free</code> <code>limit </code><code>set</code> <code>to 50mb</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>limiting to approx 924 </code><code>file</code> <code>handles (829 sockets)</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>fhc </code><code>read</code> <code>buffering: off</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:07 ===</code>
</div>
<div>
<code>starting rabbitmq 3.6.10 on erlang 19.0.4</code>
</div>
<div>
<code>copyright (c) 2007-2017 pivotal software, inc.</code>
</div>
<div>
<code>licensed under the mpl. see http:</code><code>//www</code><code>.rabbitmq.com/</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:07 ===</code>
</div>
<div>
<code>node : rabbit@master01</code>
</div>
<div>
<code>home </code><code>dir</code> <code>: </code><code>/var/lib/rabbitmq</code>
</div>
<div>
<code>config </code><code>file</code><code>(s) : </code><code>/etc/rabbitmq/rabbitmq</code><code>.config (not found)</code>
</div>
<div>
<code>cookie </code><code>hash</code> <code>: +9losjmr5x</code><code>/9geguoed28a</code><code>==</code>
</div>
<div>
<code>log : </code><code>/var/log/rabbitmq/rabbit</code><code>@master01.log</code>
</div>
<div>
<code>sasl log : </code><code>/var/log/rabbitmq/rabbit</code><code>@master01-sasl.log</code>
</div>
<div>
<code>database </code><code>dir</code> <code>: </code><code>/var/lib/rabbitmq/mnesia/rabbit</code><code>@master01</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>memory limit </code><code>set</code> <code>to 732mb of 1831mb total.</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>enabling </code><code>free</code> <code>disk space monitoring</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>disk </code><code>free</code> <code>limit </code><code>set</code> <code>to 50mb</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>limiting to approx 924 </code><code>file</code> <code>handles (829 sockets)</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>fhc </code><code>read</code> <code>buffering: off</code>
</div>
<div>
<code>fhc write buffering: on</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>database directory at </code><code>/var/lib/rabbitmq/mnesia/rabbit</code><code>@master01 is empty. initialising from scratch...</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>waiting </code><code>for</code> <code>mnesia tables </code><code>for</code> <code>30000 ms, 9 retries left</code>
</div>
<div>
</div>
<div>
<code>=info report==== 5-mar-2018::21:42:09 ===</code>
</div>
<div>
<code>waiting </code><code>for</code> <code>mnesia tables </code><code>for</code> <code>30000 ms, 9 retries left</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这里显示的是没有找到配置文件,我们可以自己创建这个文件</p>
<div>
<div>
<div id="highlighter_715609">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>config </code><code>file</code><code>(s) : </code><code>/etc/rabbitmq/rabbitmq</code><code>.config (not found)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
创建rabbitmq.config</p>
<div>
<div>
<div id="highlighter_873200">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code>$ </code><code>cd</code> <code>/etc/rabbitmq/</code>
</div>
<div>
<code>$ vim rabbitmq.config</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>编辑内容如下:</strong></p>
<div>
<div>
<div id="highlighter_493678">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>[{rabbit, [{loopback_users, []}]}].</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。</p>
<p>
<strong>保存配置后重启服务</strong></p>
<div>
<div>
<div id="highlighter_482067">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>$ service rabbitmq-server restart</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>开启管理ui</strong></p>
<div>
<div>
<div id="highlighter_137598">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>$ </code><code>/sbin/rabbitmq-plugins</code> <code>enable</code> <code>rabbitmq_management</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>重启服务</strong></p>
<div>
<div>
<div id="highlighter_71407">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>$ service rabbitmq-server restart</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>访问管理ui</strong></p>
<p>
通过 http://ip:15672 使用guest, guest 进行登陆了.</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" alt="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" src="https://zhuji.jb51.net/uploads/img/20230519/78fcb03d54912befb91a0affb554ae4c.jpg"></p>
<p>
<strong>授权操作</strong></p>
<p>
添加用户</p>
<p>
处于安全的考虑,guest这个默认的用户只能通过http://localhost:15672 来登录,其他的ip无法直接使用这个账号。 这对于服务器上没有安装桌面的情况是无法管理维护的,除非通过在前面添加一层代理向外提供服务,这个又有些麻烦了,这里通过配置文件来实现这个功能</p>
<p>
命令格式</p>
<div>
<div>
<div id="highlighter_623985">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>rabbitmqctl add_user <username> <newpassword></code>
</div>
<div>
<code>$ rabbitmqctl add_user zhdya 123456</code>
</div>
<div>
<code>creating user </code><code>"zhdya"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
删除用户</p>
<div>
<div>
<div id="highlighter_806579">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>rabbitmqctl delete_user <username></code>
</div>
<div>
<code>$ rabbitmqctl delete_user admin_test</code>
</div>
<div>
<code>deleting user </code><code>"admin_test"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
修改密码</p>
<div>
<div>
<div id="highlighter_175094">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>rabbitmqctl change_password <username> <newpassword></code>
</div>
<div>
<code>$ rabbitmqctl change_password zhdya 123456</code>
</div>
<div>
<code>changing password </code><code>for</code> <code>user </code><code>"zhdya"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
用户授权</p>
<div>
<div>
<div id="highlighter_848029">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>rabbitmqctl set_permissions [-pvhostpath] {user} {conf} {write} {</code><code>read</code><code>}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
该命令使用户zhdya /(可以访问虚拟主机) 中所有资源的配置、写、读权限以便管理其中的资源</p>
<div>
<div>
<div id="highlighter_224131">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code>$ rabbitmqctl set_permissions -p </code><code>"/"</code> <code>zhdya </code><code>".*"</code> <code>".*"</code> <code>".*"</code>
</div>
<div>
<code>setting permissions </code><code>for</code> <code>user </code><code>"zhdya"</code> <code>in</code> <code>vhost </code><code>"/"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看用户授权</p>
<div>
<div>
<div id="highlighter_192660">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
</td>
<td>
<div>
<div>
<code>rabbitmqctl list_permissions [-p vhostpath]</code>
</div>
<div>
<code>$ rabbitmqctl list_permissions -p /</code>
</div>
<div>
<code>listing permissions </code><code>in</code> <code>vhost </code><code>"/"</code>
</div>
<div>
<code>guest .* .* .*</code>
</div>
<div>
<code>zhdya .* .* .*</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看当前用户列表</p>
<p>
可以看到添加用户成功了,但不是administrator角色</p>
<div>
<div>
<div id="highlighter_17839">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
</td>
<td>
<div>
<div>
<code>$ rabbitmqctl list_users</code>
</div>
<div>
<code>listing </code><code>users</code>
</div>
<div>
<code>guest </code>
</div>
<div>
<code>zhdya []</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
添加角色</p>
<p>
这里我们也将ymq用户设置为administrator角色</p>
<p>
命令格式</p>
<div>
<div>
<div id="highlighter_783774">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>rabbitmqctl set_user_tags <username> <tag></code>
</div>
<div>
<code>$ rabbitmqctl set_user_tags zhdya administrator</code>
</div>
<div>
<code>setting tags </code><code>for</code> <code>user </code><code>"zhdya"</code> <code>to </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
再次查看权限</p>
<div>
<div>
<div id="highlighter_371932">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
</td>
<td>
<div>
<div>
<code>$ rabbitmqctl list_users</code>
</div>
<div>
<code>listing </code><code>users</code>
</div>
<div>
<code>guest </code>
</div>
<div>
<code>zhdya </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
清除权限信息</p>
<div>
<div>
<div id="highlighter_735181">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>rabbitmqctl clear_permissions [-p vhostpath] ymq</code>
</div>
<div>
<code>rabbitmqctl clear_permissions -p / zhdya</code>
</div>
<div>
<code>clearing permissions </code><code>for</code> <code>user </code><code>"zhdya"</code> <code>in</code> <code>vhost </code><code>"/"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<span><strong>官方文档</strong></span></p>
<p>
安装:</p>
<p>
访问控制:</p>
<p>
网络:</p>
<p>
配置:</p>
<p>
集群:</p>
<p>
命令:</p>
<p>
<span><strong>web 界面</strong></span></p>
<p>
</p>
<p>
<span><strong>添加用户</strong></span></p>
<p>
鼠标点击,划红线的角色,选择一种</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" alt="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" src="https://zhuji.jb51.net/uploads/img/20230519/1c5d258c733bd8060d304e239bffad19.jpg"></p>
<p>
<span><strong>rabbitmq的用户角色分类:</strong></span></p>
<p>
none、management、policymaker、monitoring、administrator</p>
<p>
rabbitmq各类角色描述:</p>
<p>
none</p>
<blockquote>
<p>
不能访问 management plugin</p>
</blockquote>
<p>
management</p>
<blockquote>
<p>
用户可以通过amqp做的任何事外加:<br>
列出自己可以通过amqp登入的virtual hosts <br>
查看自己的virtual hosts中的queues, exchanges 和 bindings<br>
查看和关闭自己的channels 和 connections<br>
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。</p>
</blockquote>
<p>
policymaker</p>
<blockquote>
<p>
management可以做的任何事外加:<br>
查看、创建和删除自己的virtual hosts所属的policies和parameters</p>
</blockquote>
<p>
monitoring</p>
<blockquote>
<p>
management可以做的任何事外加:<br>
列出所有virtual hosts,包括他们不能登录的virtual hosts<br>
查看其他用户的connections和channels<br>
查看节点级别的数据如clustering和memory使用情况<br>
查看真正的关于所有virtual hosts的全局的统计信息</p>
</blockquote>
<p>
administrator</p>
<blockquote>
<p>
policymaker和monitoring可以做的任何事外加:<br>
创建和删除virtual hosts<br>
查看、创建和删除users<br>
查看创建和删除permissions<br>
关闭其他用户的connections</p>
</blockquote>
<p>
<span><strong>设置权限</strong></span></p>
<p>
该用户无权访问任何虚拟主机</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" alt="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" src="https://zhuji.jb51.net/uploads/img/20230519/67810d9dec67efd32058bab61c562c74.jpg"></p>
<p>
<strong>点击 用户名 set permission</strong></p>
<p>
设置可以访问虚拟主机 中所有资源的配置、写、读权限以便管理其中的资源</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" alt="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" src="https://zhuji.jb51.net/uploads/img/20230519/8ea4b7b21f2409c60695c7b0d87e3c55.jpg"></p>
<p>
至此rabbitmq单机服务已经完全搭建完毕,下面来操作单机多实例:</p>
<p>
<span><strong>rabbitmq 单机多实例</strong></span></p>
<p>
其实在操作前我在网上看到了很多这种方案,多数为如下:</p>
<div>
<div>
<div id="highlighter_820642">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
</td>
<td>
<div>
<div>
<code>rabbitmq_node_port=5672 rabbitmq_nodename=rabbit1 rabbitmq-server -detached</code>
</div>
<div>
<code>rabbitmq_node_port=5673 rabbitmq_nodename=rabbit2 rabbitmq-server -detached</code>
</div>
<div>
<code>rabbitmq_node_port=5674 rabbitmq_nodename=rabbit3 rabbitmq-server -detached</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
不过我觉得对于新人来说过于简陋和不负责任!!!</p>
<p>
<strong>第一个节点</strong></p>
<p>
下面指定了特定hostname启动的,当然你也可以指定 为localhost。</p>
<div>
<div>
<div id="highlighter_910485">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
</td>
<td>
<div>
<div>
<code></code><code># vim /etc/hosts</code>
</div>
<div>
<code>#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4</code>
</div>
<div>
<code>::1 localhost localhost.localdomain localhost6 localhost6.localdomain6</code>
</div>
<div>
<code>127.0.0.1 master01</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
启动第一个节点</p>
<div>
<div>
<div id="highlighter_49538">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>rabbitmq_node_port=5672 rabbitmq_nodename=rabbit@master01 .</code><code>/rabbitmq-server</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
第二个节点</p>
<div>
<div>
<div id="highlighter_536876">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code></code><code># rabbitmq_node_port=5673 rabbitmq_nodename=rabbit1@master01 rabbitmq-server -detached</code>
</div>
<div>
<code>warning: pid </code><code>file</code> <code>not written; -detached was passed.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
你可能发现不了什么,假如你去掉-detached 你会发现,最后你得到了一个这样的错误信息:崩溃了的信息。。。</p>
<div>
<div>
<div id="highlighter_942949">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>crash dump is being written to: erl_crash.dump...</code><code>done</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
往上翻信息或者查看日志,你会看到这样的提示:</p>
<div>
<div>
<div id="highlighter_88913">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
</td>
<td>
<div>
<div>
<code>boot failed</code>
</div>
<div>
<code>===========</code>
</div>
<div>
<code>error description:</code>
</div>
<div>
<code> </code><code>{could_not_start,rabbitmq_mqtt,</code>
</div>
<div>
<code> </code><code>{{</code><code>shutdown</code><code>,</code>
</div>
<div>
<code>{failed_to_start_child,</code><code>'rabbit_mqtt_listener_sup_:::1883'</code><code>,</code>
</div>
<div>
<code> </code><code>{</code><code>shutdown</code><code>,</code>
</div>
<div>
<code> </code><code>{failed_to_start_child,</code>
</div>
<div>
<code> </code><code>{ranch_listener_sup,{acceptor,{0,0,0,0,0,0,0,0},1883}},</code>
</div>
<div>
<code> </code><code>{</code><code>shutdown</code><code>,</code>
</div>
<div>
<code>{failed_to_start_child,ranch_acceptors_sup,</code>
</div>
<div>
<code> </code><code>{listen_error,</code>
</div>
<div>
<code> </code><code>{acceptor,{0,0,0,0,0,0,0,0},1883},</code>
</div>
<div>
<code>eaddrinuse}}}}}}},</code>
</div>
<div>
<code> </code><code>{rabbit_mqtt,start,]}}}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
启动第二个节点</p>
<div>
<div>
<div id="highlighter_573346">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code></code><code># rabbitmq_node_port=5673 rabbitmq_server_start_args="-rabbitmq_management listener [{port,15673}] -rabbitmq_stomp tcp_listeners -rabbitmq_mqtt tcp_listeners " rabbitmq_nodename=rabbit1 ./rabbitmq-server -detached</code>
</div>
<div>
<code>warning: pid </code><code>file</code> <code>not written; -detached was passed.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看端口:</p>
<div>
<div>
<div id="highlighter_26755">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
</td>
<td>
<div>
<div>
<code></code><code># !net</code>
</div>
<div>
<code>netstat</code> <code>-lntp </code>
</div>
<div>
<code>active internet connections (only servers)</code>
</div>
<div>
<code>proto recv-q send-q </code><code>local</code> <code>address foreign address state pid</code><code>/program</code> <code>name </code>
</div>
<div>
<code>tcp 0 0 0.0.0.0:4369 0.0.0.0:* listen 3779</code><code>/epmd</code> </div>
<div>
<code>tcp 0 0 0.0.0.0:22 0.0.0.0:* listen 1348</code><code>/sshd</code> </div>
<div>
<code>tcp 0 0 0.0.0.0:15672 0.0.0.0:* listen 3598</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp 0 0 0.0.0.0:15673 0.0.0.0:* listen 5679</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp 0 0 127.0.0.1:25 0.0.0.0:* listen 2065</code><code>/master</code> </div>
<div>
<code>tcp 0 0 0.0.0.0:25672 0.0.0.0:* listen 3598</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp 0 0 0.0.0.0:25673 0.0.0.0:* listen 5679</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp6 0 0 :::3306 :::* listen 1418</code><code>/mysqld</code> </div>
<div>
<code>tcp6 0 0 :::4369 :::* listen 3779</code><code>/epmd</code> </div>
<div>
<code>tcp6 0 0 :::22 :::* listen 1348</code><code>/sshd</code> </div>
<div>
<code>tcp6 0 0 ::1:25 :::* listen 2065</code><code>/master</code> </div>
<div>
<code>tcp6 0 0 :::5672 :::* listen 3598</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp6 0 0 :::5673 :::* listen 5679</code><code>/beam</code><code>.smp</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看rabbit1的状态:</p>
<div>
<div>
<div id="highlighter_999667">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code>cd</code> <code>/sbin/</code>
</div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>status -n rabbit1</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
第三个节点</p>
<div>
<div>
<div id="highlighter_121840">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code></code><code># rabbitmq_node_port=5674 rabbitmq_nodename=rabbit2@master01 rabbitmq-server -detached</code>
</div>
<div>
<code>warning: pid </code><code>file</code> <code>not written; -detached was passed.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
启动第三个节点</p>
<div>
<div>
<div id="highlighter_514207">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code></code><code># rabbitmq_node_port=5674 rabbitmq_server_start_args="-rabbitmq_management listener [{port,15674}] -rabbitmq_stomp tcp_listeners -rabbitmq_mqtt tcp_listeners " rabbitmq_nodename=rabbit2 ./rabbitmq-server -detached</code>
</div>
<div>
<code>warning: pid </code><code>file</code> <code>not written; -detached was passed.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看rabbit2的状态:</p>
<div>
<div>
<div id="highlighter_234193">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
</td>
<td>
<div>
<div>
<code>cd</code> <code>/sbin/</code>
</div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>status -n rabbit2</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看启动状态:</p>
<div>
<div>
<div id="highlighter_341535">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
<div>
18</div>
<div>
19</div>
<div>
20</div>
</td>
<td>
<div>
<div>
<code></code><code># !net</code>
</div>
<div>
<code>netstat</code> <code>-lntp </code>
</div>
<div>
<code>active internet connections (only servers)</code>
</div>
<div>
<code>proto recv-q send-q </code><code>local</code> <code>address foreign address state pid</code><code>/program</code> <code>name </code>
</div>
<div>
<code>tcp 0 0 0.0.0.0:25674 0.0.0.0:* listen 6759</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp 0 0 0.0.0.0:4369 0.0.0.0:* listen 3779</code><code>/epmd</code> </div>
<div>
<code>tcp 0 0 0.0.0.0:22 0.0.0.0:* listen 1348</code><code>/sshd</code> </div>
<div>
<code>tcp 0 0 0.0.0.0:15672 0.0.0.0:* listen 3598</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp 0 0 0.0.0.0:15673 0.0.0.0:* listen 5679</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp 0 0 127.0.0.1:25 0.0.0.0:* listen 2065</code><code>/master</code> </div>
<div>
<code>tcp 0 0 0.0.0.0:15674 0.0.0.0:* listen 6759</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp 0 0 0.0.0.0:25672 0.0.0.0:* listen 3598</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp 0 0 0.0.0.0:25673 0.0.0.0:* listen 5679</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp6 0 0 :::5674 :::* listen 6759</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp6 0 0 :::3306 :::* listen 1418</code><code>/mysqld</code> </div>
<div>
<code>tcp6 0 0 :::4369 :::* listen 3779</code><code>/epmd</code> </div>
<div>
<code>tcp6 0 0 :::22 :::* listen 1348</code><code>/sshd</code> </div>
<div>
<code>tcp6 0 0 ::1:25 :::* listen 2065</code><code>/master</code> </div>
<div>
<code>tcp6 0 0 :::5672 :::* listen 3598</code><code>/beam</code><code>.smp </code>
</div>
<div>
<code>tcp6 0 0 :::5673 :::* listen 5679</code><code>/beam</code><code>.smp</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这样的话你可以通过:http://192.168.161.161:15672/#/,http://192.168.161.161:15673/#/ ,http://192.168.161.161:15674/#/ 访问web查看相关节点是否真的存在。下面就是如何实现集群操作了。</p>
<p>
<span><strong>集群操作</strong></span></p>
<p>
把节点rabbit1 加入 rabbit中</p>
<p>
1.停止第二个节点的应用程序</p>
<div>
<div>
<div id="highlighter_348741">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit1@master01 stop_app</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
2.重新设置第二个节点的元数据和状态为清空状态。</p>
<div>
<div>
<div id="highlighter_117807">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit1@master01 reset</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
3.加入第一节点</p>
<div>
<div>
<div id="highlighter_792513">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit1@master01 join_cluster rabbit@localhost</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
4.重新启动第二节点</p>
<div>
<div>
<div id="highlighter_46736">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit1@master01 start_app</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
现在再次登陆web界面你可以到web端看到集群已经存在了!!!</p>
<p>
把节点rabbit2 加入 rabbit中</p>
<p>
同如上步骤的1234:其中注意点是,如果你需要设置第三个集群节点为内存模式,而非磁盘模式,可以参考当前版本的命令提示,在最后加上 –ram 参数</p>
<p>
添加第三节点的完整命令</p>
<div>
<div>
<div id="highlighter_384548">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
</td>
<td>
<div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit2@master01 stop_app</code>
</div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit2@master01 reset</code>
</div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit2@master01 join_cluster rabbit@master01</code>
</div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit2@master01 start_app</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
注意:如上第三步,如果你要设置第三个集群节点为内存模式,而非磁盘模式,那就需要 --ram</p>
<div>
<div>
<div id="highlighter_593447">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>-n rabbit2@master01 join_cluster rabbit@master01 --</code><code>ram</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看集群状态</p>
<div>
<div>
<div id="highlighter_785750">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
</td>
<td>
<div>
<div>
<code>.</code><code>/rabbitmqctl</code> <code>cluster_status -n rabbit@localhost</code>
</div>
<div>
<code></code><code># ./rabbitmqctl cluster_status -n rabbit@localhost</code>
</div>
<div>
<code>cluster status of node rabbit@localhost</code>
</div>
<div>
<code>[{nodes,[{disc,[</code><code>'rabbit1@master01'</code><code>,</code><code>'rabbit2@master01'</code><code>,</code>
</div>
<div>
<code> </code><code>rabbit@localhost]}]},</code>
</div>
<div>
<code> </code><code>{running_nodes,[</code><code>'rabbit2@master01'</code><code>,</code><code>'rabbit1@master01'</code><code>,</code>
</div>
<div>
<code> </code><code>rabbit@localhost]},</code>
</div>
<div>
<code> </code><code>{cluster_name,<<</code><code>"rabbit@master01"</code><code>>>},</code>
</div>
<div>
<code> </code><code>{partitions,[]},</code>
</div>
<div>
<code> </code><code>{alarms,[{</code><code>'rabbit2@master01'</code><code>,[]},</code>
</div>
<div>
<code> </code><code>{</code><code>'rabbit1@master01'</code><code>,[]},</code>
</div>
<div>
<code> </code><code>{rabbit@localhost,[]}]}]</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
到web端看下效果吧!!!</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" alt="CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用" src="https://zhuji.jb51.net/uploads/img/20230519/0c6e6530d70290493a0dc95152d70c41.jpg"></p>
<p>
至此,集群搭建完毕。</p>
<p>
遇到的问题:</p>
<p>
rabbitmq在安装后可能会出现无法启动,如:</p>
<div>
<div>
<div id="highlighter_154106">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
</td>
<td>
<div>
<div>
<code>applying plugin configuration to rabbit@192... failed.</code>
</div>
<div>
<code>* could not contact node rabbit@192.</code>
</div>
<div>
<code>changes will take effect at broker restart.</code>
</div>
<div>
<code>* options: --online - fail </code><code>if</code> <code>broker cannot be contacted.</code>
</div>
<div>
<code>--offline - </code><code>do</code> <code>not try to contact broker.</code>
</div>
<div>
<code>error: unable to connect to node rabbit@192: nodedown</code>
</div>
<div>
<code>diagnostics</code>
</div>
<div>
<code>===========</code>
</div>
<div>
<code>attempted to contact: </code>
</div>
<div>
<code>rabbit@192:</code>
</div>
<div>
<code>* unable to connect to epmd (port 4369) on 192: badarg (unknown posix error)</code>
</div>
<div>
<code>current node details:</code>
</div>
<div>
<code>- node name: </code><code>'rabbitmq-cli-97@192'</code>
</div>
<div>
<code>- home </code><code>dir</code><code>: </code><code>/var/lib/rabbitmq</code>
</div>
<div>
<code>- cookie </code><code>hash</code><code>: rb2cnggdqm+k5+jq1wj6vg==</code>
</div>
<div>
<code>error: unable to connect to node rabbit@192: nodedown</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
解决办法</p>
<div>
<div>
<div id="highlighter_223172">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>vi</code> <code>/etc/rabbitmq/rabbitmq-env</code><code>.conf</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
在文件中写入<code>“nodename=rabbit@localhost” </code>,保存。</p>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
原文链接:http://www.okay686.cn/968.html</p>
頁:
[1]