RabbitMQ服务主机名更改导致消息队列无法连接
RabbitMQ服务主机名更改导致消息队列无法连接
在多节点环境中,RabbitMQ服务使用一个独立节点部署。在此环境下,如果修改了RabbitMQ节点的主机名,则需要更新RabbitMQ用户才能保证服务能够被正确访问。
RabbitMQ节点原主机名为:
root@Aloe-Express-20:/etc# cat /etc/hostname
Aloe-Express-20
root@Aloe-Express-20:/etc# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 Aloe-Express-20
172.16.112.81 CCnode
修改RabbitMQ节点主机名为:
root@Aloe-Express-22:/etc# cat /etc/hostname
Aloe-Express-22
root@Aloe-Express-22:/etc# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 Aloe-Express-22
172.16.112.81 CCnode
重启RabbitMQ节点后,发现nova服务无法连接rabbitMQ消息队列,日志抱错如下:
2016-03-29 10:34:39.477 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed
2016-03-29 10:34:44.492 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed
2016-03-29 10:34:49.508 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed
2016-03-29 10:34:54.523 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed
2016-03-29 10:34:59.539 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed
此错误是由于用户密码验证不通过造成。
于是回到RabbitMQ节点,查看RabbitMQ服务运行状态:
root@Aloe-Express-22:/etc/sahara# ps -ef | grep rabbit
rabbitmq 1939 1 0 10:20 ? 00:00:00 /usr/lib/erlang/erts-5.10.4/bin/epmd -daemon
rabbitmq 2065 1 0 10:20 ? 00:00:00 /bin/sh /usr/sbin/rabbitmq-server
rabbitmq 2079 2065 2 10:20 ? 00:00:11 /usr/lib/erlang/erts-5.10.4/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.4.3/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@Aloe-Express-22 -boot start_sasl -config /etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@Aloe-Express-22.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@Aloe-Express-22-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.4.3/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@Aloe-Express-22-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@Aloe-Express-22" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672
rabbitmq 2258 2079 0 10:20 ? 00:00:00 inet_gethost 4
rabbitmq 2259 2258 0 10:20 ? 00:00:00 inet_gethost 4
root 17356 4079 0 10:29 pts/3 00:00:00 grep --color=auto rabbit
服务正常运行,查看服务状态:
root@Aloe-Express-22:/etc/sahara# rabbitmqctl status
Status of node 'rabbit@Aloe-Express-22' ...
[{pid,2079},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.4.3"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.4.3"},
{webmachine,"webmachine","1.10.3-rmq3.4.3-gite9359c7"},
{mochiweb,"MochiMedia Web Server","2.7.0-rmq3.4.3-git680dba8"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.4.3"},
{inets,"INETS CXC 138 49","5.9.7"},
{amqp_client,"RabbitMQ AMQP Client","3.4.3"},
{rabbit,"RabbitMQ","3.4.3"},
{os_mon,"CPO CXC 138 46","2.2.14"},
{mnesia,"MNESIA CXC 138 12","4.11"},
{xmerl,"XML parser","1.3.5"},
{sasl,"SASL CXC 138 11","2.3.4"},
{stdlib,"ERTS CXC 138 10","1.19.4"},
{kernel,"ERTS CXC 138 10","2.16.4"}]},
{os,{unix,linux}},
{erlang_version,
"Erlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:30] [kernel-poll:true]\n"},
{memory,
[{total,40659504},
{connection_readers,339200},
{connection_writers,0},
{connection_channels,0},
{connection_other,79720},
{queue_procs,2704},
{queue_slave_procs,0},
{plugins,354560},
{other_proc,13826296},
{mnesia,60648},
{mgmt_db,80400},
{msg_index,46784},
{other_ets,1057432},
{binary,29600},
{code,19580581},
{atom,703377},
{other_system,4498202}]},
{alarms,[]},
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,3349220556},
{disk_free_limit,50000000},
{disk_free,154967289856},
{file_descriptors,
[{total_limit,924},{total_used,11},{sockets_limit,829},{sockets_used,9}]},
{processes,[{limit,1048576},{used,201}]},
{run_queue,0},
{uptime,567}]
服务均正常运行,查看服务运行的/var目录:
root@Aloe-Express-22:/etc/sahara# cd /var/lib/rabbitmq/
root@Aloe-Express-22:/var/lib/rabbitmq# ls
mnesia
root@Aloe-Express-22:/var/lib/rabbitmq# cd mnesia/
root@Aloe-Express-22:/var/lib/rabbitmq/mnesia# ls
rabbit@Aloe-Express-20 rabbit@Aloe-Express-20-plugins-expand rabbit@Aloe-Express-22 rabbit@Aloe-Express-22-plugins-expand
由于修改了主机名,导致RabbitMQ消息队列出现更改,此更改会导致用户的变化,查看当前环境的用户:
root@Aloe-Express-22:/var/lib/rabbitmq/mnesia# rabbitmqctl list_users
Listing users ...
guest [administrator]
guest用户为RabbitMQ默认创建的一个用户,但guest用户的密码为随机密码。需重新设置密码:
root@Aloe-Express-22:/var/lib/rabbitmq/mnesia# rabbitmqctl change_password guest password
Changing password for user "guest" ...
guest用户密码修改以后,发现nova服务日志恢复正常:
2016-03-29 10:35:01.557 1012 INFO oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] Reconnected to AMQP server on ccnode:5672
2016-03-29 10:35:01.558 1012 INFO oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] Connected to AMQP server on ccnode:5672
结论
当修改RabbitMQ主机的主机名时,需重新进行用户名密码创建才能保证外部服务正常使用RabbitMQ服务。
RabbitMQ服务主机名更改导致消息队列无法连接的更多相关文章
- rabbitmq因为主机名更改导致连接不上
今天创建rabbitmq用户的时候报错,说nodedown,定睛一看,发现主机名是localhost,而此时我们的主机名是controller01,所以猜测是主机名导致的,重启服务器,就成功添加了. ...
- rabbitmq学习(九) —— 关于消息队列的选型
转自http://cmsblogs.com/?p=3846 在IM这种讲究高并发.高消息吞吐的互联网场景下,MQ消息中间件是个很重要的基础设施,它在IM系统的服务端架构中担当消息中转.消息削峰.消息交 ...
- RabbitMQ协议-AMQP 0-9-1 (高级消息队列协议)
工作模型 producer:生产者 Connection:TCP长连接,AMQP 0-9-1 连接通常是长期存在的.AMQP 0-9-1 是一个应用层协议,它使用 TCP 进行可靠传输.连接使用身份验 ...
- 分布式服务(RPC)+分布式消息队列(MQ)面试题精选
分布式系统(distributed system)是建立在网络之上的软件系统.正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性.因此,网络和分布式系统之间的区别更多的在于高层软件(特别是 ...
- vbox安装ubuntu之后挂载共享文件夹无权限访问的问题以及改了主机名,导致命令行不能解析主机名的问题
1.挂载方法在挂载的时候虚拟机给出了命令 2. sudo adduser yourusername vboxsf (vboxsf是挂载的文件夹的用户组,在/media目录下用 ls -l 命令可以看到 ...
- RabbitMQ 服务
RabbitMQ 使用场景一 安装环境 1.下载安装 Erlang 运行时环境 2.下载安装 RabbitMQ Server 应用程序 3.启动 RabbitMQ 服务(默认启动) 4.安装管理平 ...
- RabbitMQ消息队列阻塞导致服务器宕机
最近工作中存储服务器由于压力太大无法及时消费消息.这个过程中,导致RabbitMQ意外挂掉,无法访问.下面是部分问题分析过程. 麒麟系统服务器分析 1.服务器异常信息: [root@localhost ...
- 没用过消息队列?一文带你体验RabbitMQ收发消息
人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 先给大家说声抱歉,最近一周都没有发文,有一些比较要紧重要的事需要处理. 今天正好得空,本来说准备写SpringIOC相关的东西,但是发现想 ...
- 消息队列 RabbitMQ 与 Spring 整合使用
一.什么是 RabbitMQ RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.消 ...
随机推荐
- [BZOJ4144][AMPPZ2014]Petrol[多源最短路+MST]
题意 题目链接 分析 假设在 \(a \rightarrow b\) 的最短路径中出现了一个点 \(x\) 满足到 \(x\) 最近的点是 \(c\) ,那么我们完全可以从 \(a\) 直接走到 \( ...
- Java设计模式-建造者(Builder)模式
目录 由来 使用 1. 定义抽象 Builder 2. 定义具体 Builder类 3. 定义具体 Director类 4. 测试 定义 文字定义 结构图 优点 举例 @ 最近在看Mybatis的源码 ...
- 《Effective Java》学习笔记 —— 通用程序设计
本章主要讨论局部变量.控制结构.类库.反射.本地方法的用法及代码优化和命名惯例. 第45条 将局部变量的作用域最小化 * 在第一次使用的它的地方声明局部变量(就近原则). * 几乎每个局部变量的声明都 ...
- 高精度减法--C++
高精度减法--C++ 仿照竖式减法,先对其,再对应位相减. 算法处理时,先比较大小,用大的减小的,对应位再比较大小,用于作为借位符. #include <iostream> #includ ...
- VLAN入门知识
版权声明: https://blog.csdn.net/xinyuan510214/article/details/52020987 本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载.但转 ...
- 镜像仓库管理:与Portus不得不说的那些事
背景: 目前在做一个云计算相关的项目,其中有这样一个需求:每个平台用户都有自己的docker镜像仓库(docker registry),用户可以对自己的镜像仓库的push/pull权限进行管理,也就是 ...
- webug4.0安装
官网:https://www.webug.org/ 官方版本里安装视频教程 4.26 官网打不开,分享当初存在网盘的 链接:https://pan.baidu.com/s/13rG0TLwuA3Ro0 ...
- Macaca初体验-PC端(Python)
前言: Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,周边工具,集成方案.由阿里巴巴公司开源:http://macacajs.github.io/macaca/ 特点: 同时支持 ...
- 前后端同学必会的Linux基础命令
无论是前端还是后端同学,一些常用的linux命令还是必须要掌握的.发布版本.查看日志等等都会用到.以下是我简单的总结了一些简单又常用的命令,欢迎大家补充.希望能帮助到大家 基础篇 1.进入目录 cd ...
- NS2安装过程中环境变量设置的问题(ns-2.35)
nam: Can't find a usable tk.tcl in the following directories: */ns-allinone-2.35/tcl8.5.10/library/t ...