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服务主机名更改导致消息队列无法连接的更多相关文章

  1. rabbitmq因为主机名更改导致连接不上

    今天创建rabbitmq用户的时候报错,说nodedown,定睛一看,发现主机名是localhost,而此时我们的主机名是controller01,所以猜测是主机名导致的,重启服务器,就成功添加了. ...

  2. rabbitmq学习(九) —— 关于消息队列的选型

    转自http://cmsblogs.com/?p=3846 在IM这种讲究高并发.高消息吞吐的互联网场景下,MQ消息中间件是个很重要的基础设施,它在IM系统的服务端架构中担当消息中转.消息削峰.消息交 ...

  3. RabbitMQ协议-AMQP 0-9-1 (高级消息队列协议)

    工作模型 producer:生产者 Connection:TCP长连接,AMQP 0-9-1 连接通常是长期存在的.AMQP 0-9-1 是一个应用层协议,它使用 TCP 进行可靠传输.连接使用身份验 ...

  4. 分布式服务(RPC)+分布式消息队列(MQ)面试题精选

    ​ 分布式系统(distributed system)是建立在网络之上的软件系统.正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性.因此,网络和分布式系统之间的区别更多的在于高层软件(特别是 ...

  5. vbox安装ubuntu之后挂载共享文件夹无权限访问的问题以及改了主机名,导致命令行不能解析主机名的问题

    1.挂载方法在挂载的时候虚拟机给出了命令 2. sudo adduser yourusername vboxsf (vboxsf是挂载的文件夹的用户组,在/media目录下用 ls -l 命令可以看到 ...

  6. RabbitMQ 服务

    RabbitMQ 使用场景一   安装环境 1.下载安装 Erlang 运行时环境 2.下载安装 RabbitMQ Server 应用程序 3.启动 RabbitMQ 服务(默认启动) 4.安装管理平 ...

  7. RabbitMQ消息队列阻塞导致服务器宕机

    最近工作中存储服务器由于压力太大无法及时消费消息.这个过程中,导致RabbitMQ意外挂掉,无法访问.下面是部分问题分析过程. 麒麟系统服务器分析 1.服务器异常信息: [root@localhost ...

  8. 没用过消息队列?一文带你体验RabbitMQ收发消息

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 先给大家说声抱歉,最近一周都没有发文,有一些比较要紧重要的事需要处理. 今天正好得空,本来说准备写SpringIOC相关的东西,但是发现想 ...

  9. 消息队列 RabbitMQ 与 Spring 整合使用

    一.什么是 RabbitMQ RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.消 ...

随机推荐

  1. Hadoop开发第6期---HDFS的shell操作

    一.HDFS的shell命令简介 我们都知道HDFS 是存取数据的分布式文件系统,那么对HDFS 的操作,就是文件系统的基本操作,比如文件的创建.修改.删除.修改权限等,文件夹的创建.删除.重命名等. ...

  2. 【Qt】QLabel之动态阴影边框

    效果如下: 实现思路参考了下面的文章: Qt 之 QPropertyAnimation 该文章是自定义属性alpha,原理类似,代码如下: //在头文件加入 Q_PROPERTY(int iBorde ...

  3. idea git pull项目到本地时容易出现的问题

    有时候pull到本地,出了各种错误,其实是因为搞来搞去的,容易出问题,所以最好的方法是拿原有打包好的整个稳定能跑的项目环境, 先git add,然后vcs重置head为hard,然后再pull,一般就 ...

  4. Java 多线程之 Thread 类 和 Runnable 接口初步使用

    目录 Thread 类 Thread之定义线程类 Thread之开启线程 Runnable 接口 Runnable 之定义线程类 Runnable 之开启线程 @ Thread 类 Thread 类是 ...

  5. 浅析java构造函数前的访问限定符问题

    曾经一直有个问题困扰着我,我一直以为构造函数前面不能加任何东西,但偶然间看到了一本书上写的代码中,构造函数前加了public限定符,心里很是疑惑,构造函数前加毛访问限定符啊??!  在网上查了很多资料 ...

  6. linux AB web 性能测试工具

    ab(选项)(参数) 选项 -A:指定连接服务器的基本的认证凭据: -c:指定一次向服务器发出请求数: -C:添加cookie: -g:将测试结果输出为“gnuolot”文件: -h:显示帮助信息: ...

  7. 升级framework4.0后form认证票据失效的问题

    好久没来了,密码都差点忘了,顺便记录下今天配置环境碰到的小问题 网站使用的form authentication做SSO登录,登录域名使用的framework20配置环境 一个栏目升级为4.0环境后, ...

  8. PAT甲题题解-1034. Head of a Gang (30)-并查集

    给出n和k接下来n行,每行给出a,b,c,表示a和b之间的关系度,表明他们属于同一个帮派一个帮派由>2个人组成,且总关系度必须大于k.帮派的头目为帮派里关系度最高的人.(注意,这里关系度是看帮派 ...

  9. 20135202闫佳歆--week2 一个简单的时间片轮转多道程序内核代码及分析

    一个简单的时间片轮转多道程序内核代码及分析 所用代码为课程配套git库中下载得到的. 一.进程的启动 /*出自mymain.c*/ /* start process 0 by task[0] */ p ...

  10. PAT 1044 火星数字

    https://pintia.cn/problem-sets/994805260223102976/problems/994805279328157696 火星人是以13进制计数的: 地球人的0被火星 ...