博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux Centos7 rabbitmq安装及集群配置
阅读量:4007 次
发布时间:2019-05-24

本文共 2772 字,大约阅读时间需要 9 分钟。

RabbitMQ 端口说明:

4369 – epmd,RabbitMQ节点和CLI工具使用的对等发现服务
5672 – 由不带TLS和带TLS的AMQP 0-9-1和1.0客户端使用
15672 – HTTP API客户端,管理UI和Rabbitmqadmin (仅在启用管理插件的情况下)
25672 --用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+ 20000)。除非确实需要这些端口上的外部连接(例如,群集使用联合身份验证或在子网外部的计算机上使用CLI工具),否则这些端口不应公开

我们连接RabbitMQ的话就要用client端通信口:

1.配置yum源

安装epel源

yum install -y epel-release

##安装依赖
yum install erlang -y

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.ascyum install https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm

2.设置开机自启动

systemctl enable rabbitmq-server

3.配置及优化

1) 修改rabbitmq的socket 文件数

##修改rabbitmq的socket 文件数
vim /usr/lib/systemd/system/rabbitmq-server.service

[Service]LimitNOFILE=300000

###提高rabbitmq的内存低水位线(默认0.4)

vim /etc/rabbitmq/rabbitmq.config

[{
rabbit, [{
vm_memory_high_watermark_paging_ratio, 0.75}, {
vm_memory_high_watermark, 0.6}]}].

2) 配置用户登陆权限

vim /etc/rabbitmq/rabbitmq.config

[{
rabbit, [{
loopback_users, []}]}].

开启用户远程访问

默认情况下,RabbitMQ的默认的guest用户只允许本机访问, 如果想让guest用户能够远程访问的话,只需要将配置文件中的loopback_users列表置为空即可,如下:

{
loopback_users, []}

另外关于新添加的用户,直接就可以从远程访问的,如果想让新添加的用户只能本地访问,可以将用户名添加到上面的列表, 如只允许admin用户本机访问。

{
loopback_users, ["admin"]}

4.基础设置

更新配置后,别忘了重启服务哦!

1) 创建用户

rabbitmqctl add_user ${youruser}  ${yourpassword}rabbitmqctl set_user_tags ${youruser} administrator

2)启用web界面管理插件

rabbitmq-plugins enable rabbitmq_management

3)启动服务

systemctl start rabbitmq-server

5. 集群设置

1)修改 /var/lib/rabbitmq/.erlang.cookie 使集群中的服务器该文件内容保持一致

2)确保各节点网络互通,编辑各节点host解析vim /etc/hosts

192.168.1.1   host1(host这里注意是hostname 而不是rabbit@hostname)   192.168.1.2   host2

3)主节点开启应用(默认开启)

rabbitmqctl start_app

4)如果主机间有防火墙,先配置防火墙使之互通

firewall-cmd --add-port={5672,4369,25672}/tcp --permanent

5)在主节点以外其他节点执行

rabbitmqctl stop_app rabbitmqctl join_cluster rabbit@host1(主节点host) rabbitmqctl cluster_status rabbitmqctl start_app rabbitmqctl cluster_status

安装完成,web页面访问 192.168.1.1:15672

6. 报错处理

主机名修改后,rabbitmq报错:

Error: unable to connect to node rabbit@pub: nodedown

DIAGNOSTICS===========attempted to contact: [rabbit@a-pub]rabbit@pub:  * unable to connect to epmd (port 4369) on a-pub: nxdomain (non-existing domain)current node details:- node name: 'rabbitmq-cli-25@pub'- home dir: /var/lib/rabbitmq- cookie hash: hczXpvF39Wr2EpJ4cjRpAQ==

之前没找到原因,修改/etc/hosts,/etc/sysconfig/network 不起作用,然后重启了rabbitmq 也还是不行并且导致重启后用户丢失 ,此时你可以选择将hostname 改回去或者正确的姿势是将原hostname 写入下面的配置文件 ,保证rabbitmq 可以识别,原因见下面

echo ‘NODENAME=rabbit@pub’ > /etc/rabbitmq/rabbitmq-env.conf

ps: Rabbitmq 重启后用户丢失解决办法

原因:
RabbitMQ数据是根据当前hostname作为node节点作为数据名保存
如果在重启之前修改了主机名hostname ,那么程序会在/var/lib/rabbitmq/mnesia/ 下新建数据文件,而原来的账号等数据存在于原hostname命名的数据文件,因此导致用户丢失
解决办法:
echo “NODENAME=rabbit@${yourhostname}” >> /etc/rabbitmq/rabbitmq-env.conf

转载地址:http://wvkfi.baihongyu.com/

你可能感兴趣的文章
linux mint下使用外部SMTP(如网易yeah.net)发邮件
查看>>
北京联通华为光猫HG8346R破解改桥接
查看>>
python使用win32*模块模拟人工操作——城通网盘下载器(一)
查看>>
python append 与浅拷贝
查看>>
Matlab与CUDA C的混合编程配置出现的问题及解决方案
查看>>
2017阿里内推笔试题--算法工程师(运筹优化)
查看>>
python自动化工具之pywinauto(零)
查看>>
python自动化工具之pywinauto(四)——批量转换exe视频
查看>>
python一句话之利用文件对话框获取文件路径
查看>>
PaperDownloader——文献命名6起来
查看>>
PaperDownloader 1.5.1——更加人性化的文献下载命名解决方案
查看>>
如何将PaperDownloader下载的文献存放到任意位置
查看>>
C/C++中关于动态生成一维数组和二维数组的学习
查看>>
系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
查看>>
JVM最简生存指南
查看>>
漂亮的代码,糟糕的行为——解决Java运行时的内存问题
查看>>
Java的对象驻留
查看>>
自己动手写GC
查看>>
Java 8新特性终极指南
查看>>
logback高级特性使用(二) 自定义Pattern模板
查看>>