网站首页 > 技术文章 正文
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工具),否则这些端口不应公开
一、安装
- 配置yum源
安装epel源
yum install -y epel-release
安装依赖
yum install erlang -y
安装服务
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
yum 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
systemctl start rabbitmq-server
3. 创建用户(注意替换命令中的变量)
rabbitmqctl add_user ${youruser} ${yourpassword}
rabbitmqctl set_user_tags ${youruser} administrator
4. 启用web界面管理插件
rabbitmq-plugins enable rabbitmq_management
5.访问web页面
http://IP:15672
二、.配置优化
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, []}]}].
3.开启用户远程访问
默认情况下,RabbitMQ的默认的guest用户只允许本机访问, 如果想让guest用户能够远程访问的话,只需要将配置文件中的loopback_users列表置为空即可,如下:
{loopback_users, []}
另外关于新添加的用户,直接就可以从远程访问的,如果想让新添加的用户只能本地访问,可以将用户名添加到上面的列表, 如只允许admin用户本机访问。
{loopback_users, ["admin"]}
更新配置后,别忘了重启服务哦!
三、集群设置
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
四、报错处理
主机名修改后,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
猜你喜欢
- 2024-09-24 RabbitMQ宕机后,消息100%不会丢失吗
- 2024-09-24 非常强悍的 RabbitMQ 总结,写得真好
- 2024-09-24 「服务器」RabbitMQ入门教程——简介及工作原理
- 2024-09-24 在 WebApi 项目中快速开始使用 RabbitMQ
- 2024-09-24 RabbitMQ使用延迟插件,代码量直接降一半?
- 2024-09-24 RabbitMQ 高可用之镜像队列
- 2024-09-24 k8s上创建高可用RabbitMQ集群
- 2024-09-24 Centos7部署RabbitMQ的镜像队列集群
- 2024-09-24 docker分布式部署rabbitmq高可用集群
- 2024-09-24 详解如何用zabbix来监控rabbitmq消息队列服务
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)