易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 3798|回复: 2
收起左侧

rabbitmq 集群的问题

[复制链接]
发表于 2017-7-14 01:08:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
rabbitmqctl forget_cluster_node nodename提示删除错误
( J! d& f& s/ T1 @5 k* d8 D2 u- Y5 w4 p今天再测一次. V' R; I" P- j& u% ]5 G$ V
 楼主| 发表于 2017-7-14 10:36:53 | 显示全部楼层

rabbitmq集群

我的环境如下:
1、两台Centos7的机器,hostname分别为:F , G .
2、IP地址分别为:F—172.18.8.229 , G—172.18.8.224。
3、修改hosts文件如下,下面是G这台机器的hosts文件内容,F也需要如下配置:
[backcolor=rgb(245, 245, 245) !important][url=]
7 A& t" K# i, G7 ]( K' r+ `9 S
                               
登录/注册后可看大图
[/url]

! }4 g  Y. n$ Q( h/ M% g+ |8 Z( i7 L[root@G bin]# cat /etc/hosts127.0.0.1 G  localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1       G  localhost localhost.localdomain localhost6 localhost6.localdomain6 172.18.8.224 G172.18.8.229 F[backcolor=rgb(245, 245, 245) !important][url=]
3 J' j; C' G) T8 c( [. @
                               
登录/注册后可看大图
[/url]

% m6 a. ^# `6 y  H+ O* F3 {  o6 X' B# A# y/ k- D" u5 C
4、保证两台机器都能够相互ping通,如下图:

& ^2 Y* M# C* b2 L  [3 i: A                               
登录/注册后可看大图
好啦,环境到此就就能满足啦,接下来我们把rabbitmq装在2台机器上。
学习不看官方文档,那就别学啦,地址如下:http://www.rabbitmq.com/install-rpm.html
安装rabbitmq依赖erlang环境,所以我们要先安装erlang环境。
9 e3 `" G  `, S7 {- x; v
                               
登录/注册后可看大图
安装完成之后,下载rabbitmq的rpm包ivh即可。如果实在不会安装,Linux系统(二)软件的安装与卸载 里面有安装rabbitmq的实例,看官笑纳,实在不会装那加入左上方群,或者点击网页右上方的X吧,一定要相信不是你的错,是你与rabbitmq缘分不到。
安装启动过程中如果出现error,那可参考下面几个方案试试:
  • vim /etc/rabbitmq/enable_plugins :删除文件中的内容。
  • 查看hosts文件是否配置完善,相互是否可以ping通
  • 查看相关端口是否被占用,如若占用kill掉
  • 如果已经集群,那么要查看所有集群中的/var/lib/rabbitmq/.erlang.cookie是否一致。
  • 如果不存在上述文件,echo $HOME ,打开此文件夹,查看cookie文件是否一致。
  • 重启电脑,防止缓存数据配置未更新过来。
    9 H0 T5 p! R7 v2 `$ C
这里安装启动成功之后,来几个常用的操作。
[backcolor=rgb(245, 245, 245) !important][url=]
8 f" t. K5 B. Q- k
                               
登录/注册后可看大图
[/url]
) A% |5 X5 T5 ?! [$ I+ M
[root@G bin]# ./rabbitmq-server -deched  --后台启动服务[root@G bin]# ./rabbitmqctl start_app  --启动服务[root@G bin]# ./rabbitmqctl stop_app  --关闭服务[root@G bin]# ./rabbitmq-plugins enable rabbitmq_management --启动web管理插件[root@G bin]# ./rabbitmqctl add_user zlh zlh  --添加用户,密码[root@G bin]# ./rabbitmqctl set_user_tags zlh administrator --设置zlh为administrator权限[backcolor=rgb(245, 245, 245) !important][url=]

6 @! x8 N$ G! Y3 R  x. U- A                               
登录/注册后可看大图
[/url]

" u% i- R7 X* c0 \$ F2 {1 r( D2 q  C
如果你看到如下操作,即表明启动成功啦,并且web管理页面的插件也启动成功,如果下面的6为0,则需要启动web管理插件

, x* m1 z) D  V* P0 T3 i                               
登录/注册后可看大图
那具体rabbitmqctl 的命令详细还要看官网文档:http://www.rabbitmq.com/man/rabbitmqctl.1.man.html
搭建rabbitmq的一般模式集群
在上述的两台机器上安装rabbitmq完成之后,你可以看到你的机器中有如下1个文件。路径在$HOME中或者在/var/lib/rabbitmq中,文件名称为.erlang.cookie,他是一个隐藏文件。那么这文件存储的内容是什么,是做什么用的呢?
这样说吧:RabbitMQ的集群是依赖erlang集群,而erlang集群是通过这个cookie进行通信认证的,因此我们做集群的第一步就是干cookie。怎么干?
1、必须使集群中也就是F,G这两台机器的.erlang.cookie文件中cookie值一致,且权限为owner只读。
机器G中的Cookie:

2 s5 }4 `0 V$ c  F: J6 A) o                               
登录/注册后可看大图
机器F中的Cookie:
0 l+ `/ W* B' @; o& r
                               
登录/注册后可看大图
修改文件权限如下:
[root@F ~]# chmod 600 .erlang.cookie# u8 e& Y7 u4 I
2、查看集群状态,我的是已经做好的。
[backcolor=rgb(245, 245, 245) !important][url=]
- z; [( ]1 g- m; m$ \4 W. }9 E! s
                               
登录/注册后可看大图
[/url]
5 |) y7 w/ X  v8 ]
[root@F bin]# ./rabbitmqctl cluster_statusCluster status of node rabbit@F ...[{nodes,[{disc,[rabbit@G]},{ram,[rabbit@F]}]}, {running_nodes,[rabbit@G,rabbit@F]}, {cluster_name,<<"rabbit@F">>}, {partitions,[]}, {alarms,[{rabbit@G,[]},{rabbit@F,[]}]}][backcolor=rgb(245, 245, 245) !important][url=]
4 `: b" B( y- C5 }& ^7 C+ w* t
                               
登录/注册后可看大图
[/url]

6 c+ u+ j% J5 x5 h% Y' p
6 M* U& @, }: W8 A2 N2 l/ T! k+ k
3、停止当前机器中rabbitmq的服务
[root@F bin]# ./rabbitmqctl stop_app
5 g2 \9 q4 T, Z$ ]+ o
4、把G中的rabbitmq加入到集群中来
[root@F bin]# ./rabbitmqctl join_cluster --ram rabbit@G
4 b& M! T- ]4 a  b  ^. ]# `
5、开启当前机器的rabbitmq服务
[root@F bin]# ./rabbitmqctl start_app# {( e. J; r& c
6、打开网页管理页面查看nodes
" k  j# E2 N! [$ v. R
                               
登录/注册后可看大图
如此便可以啦,你可以做下测试,验证下我们序言中说的普通模式的说明,那必须是杠杠对的。
搭建rabbitmq的镜像高可用模式集群
写到这里,接下来,有朋友要请我吃饭啦,我就速战速决赴会去啦,即便如此该有的也会都有的。go,go,go。
这一节要参考的文档是:http://www.rabbitmq.com/ha.html
首先镜像模式要依赖policy模块,这个模块是做什么用的呢?
policy中文来说是政策,策略的意思,那么他就是要设置,那些Exchanges或者queue的数据需要复制,同步,如何复制同步?对就是做这些的。
这里有点内容的,我先上例子慢慢说:
[root@G ~]# ./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'7 ~+ C, ?% P! X# g8 @$ L2 _6 p8 i
参数意思为:
ha-all:为策略名称。
^:为匹配符,只有一个^代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue。
ha-mode:为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如["3rabbit@F","rabbit@G"]这样指定为F与G这2台机器。)。
参考示例如下
# @$ @: F- u2 \- e
                               
登录/注册后可看大图
当然在web管理界面也能配置:
8 W) p5 D, o" q0 S* Q  c0 _, x/ P
                               
登录/注册后可看大图
配置完看队列如下,其中表示ha-haall的说明用我的ha-haall策略啦,属于镜像模式,没有表示的就是普通模式:
2 u& G" K% j5 n, ?; ?. y: j
                               
登录/注册后可看大图
总结
接下来是大家最喜欢的总结内容啦,内容有二,如下:
1、希望能关注我其他的文章。
2、博客里面有没有很清楚的说明白,或者你有更好的方式,那么欢迎加入左上方的2个交流群,我们一起学习探讨。
 楼主| 发表于 2017-7-14 10:38:16 | 显示全部楼层
# rabbitmq-server -deched
3 D" V3 V% w, T( oERROR: node with name "rabbit" already running on "node1"
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 点击这里给我发消息

GMT+8, 2026-4-8 15:21 , Processed in 0.043072 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表