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. Linux 设置core dump

    Linux 设置core dump

  2. Caffe上手教程

    Caffe上手教程 入门系列FAQ72 在Unbuntu上安装Caffe828 Windows下安装Caffe1.4K Caffe框架上手教程1.2K Caffe编译运行调试462 Caffe 电脑配 ...

  3. 蓝牙disable流程简述

    蓝牙关闭的流程比打开流程要简单,主要就是一些profile的断连以及协议栈相关结构的释放. 这里简单说一下其流程,就直接从协议栈的disable的接口说起了. static int disable(v ...

  4. 解决 idea 中的 tomcat控制台 和cmd tomcat下的中文乱码问题(win10 64位)

    原理:idea控制台里的日志默认是从tomcat的localhost.log 和 catalina.log 两个文件中读出来的. https://blog.csdn.net/zhaijingkui/a ...

  5. LOJ#2799. 「CCC 2016」生命之环

    题意 给你一个 \(n\) 个 \(\rm 01\) 组成的环,每次操作之后每个位置为1当且仅当他的左右恰好有1个1.输出进行 \(T\) 次操作之后的环. \(n\leq 10^5, T\leq 1 ...

  6. [C#]使用Label标签控件模拟窗体标题的移动及窗体颜色不断变换

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 开发工具:VS2017 语言:C# DotNet版本:.Net FrameWork 4.0及以 ...

  7. 小知识点--crontab

    前言 这两周学了很多东西,还把golang语言基本掌握了,收获还是挺多的.在做安全的过程中,有很多需要定时执行的任务,比如抓取主机数量,端口数据等,这都逃不开linux中的crontab命令,今天分享 ...

  8. 苹果电脑获取Android Studio的发布版SHA1和开发版SHA1

    最近开始转战安卓,准备把我在苹果上的应用也在安卓上来一波,其中就遇到一个问题就是最牛天气(iOS和微信小程序都已经有了,就差安卓的了)引用的百度的定位功能,需要填写发布版SHA1和开发版SHA1,作为 ...

  9. 搭建个人博客 github+hexo

    其实相关的教程网上有很多很多,不过就是很多很多,而且技术大神们每个人都写得不一样啊喂,为什么我明明就是一步一步按照教程来的还是有那么多乱七八糟的错?...所以我决定写此篇记录一下我搭建博客的过程以及我 ...

  10. 如何解决python连接数据库编码问题(python传数据到mysql乱码)'ascii' codec can't encode _mysql_exceptions.OperationalError: (1366, "Incorrect string value:?

    首先描述下问题:  在使用python计算出结果后将结果插入到mysql过程中,报如下错误.原因很好定位就是编码的问题.那么到底是编码哪里出了问题了呢? 报错如上: 排查顺序: 第一:python的编 ...