当前位置:   article > 正文

Centos7环境安装RabbitMQ_rabbit fatal: unable to use my own hostname

rabbit fatal: unable to use my own hostname

1 RabbitMQ概念

MQ全称为MessageQueue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息来通信,而无需专用链接来链接他们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

2 安装Rabbit

整体环境:Centos 7

2.1 Erlang

2.1.1 什么是 Erlang

Erlang(['ə:læŋ])是一种通用的面向并发的编程语言, 它由瑞典电信设备制造商爱立信所辖的CS-Lab开发, 目的是创造一种可以应对大规模并发活动的编程语言和运行环境

2.1.2 安装 erlang

2.1.2.1 下载erlang

安装准备, 下载安装文件
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
可能报错:

  • 报错信息:Unable to establish SSL connection
  • 解决:wget的版本过低,建议更新wget版本,更新wget的命令为:yum update wget
2.1.2.2 升级erlang

升级安装的软件:
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
可能报错:

  • error: Failed dependencies: epel-release is needed by erlang-solutions-1.0-1.noarch
  • 解决:yum install epel-release
2.1.2.3 安装

安装命令:yum install erlang
注意:如果是Centos6.7直接执行上面的会报错:
在这里插入图片描述
出现了问题:Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again,需要安装epel

解决方法: 把/etc/yum.repos.d/epel.repo,文件第3行注释去掉,把第四行注释掉。具体如下:

打开/etc/yum.repos.d/epel.repo,将
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
修改为
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

如果还是不行,修改DNS,到/etc/resolv.conf下添加一下:

nameserver 8.8.8.8
search localdomain
然后重启network服务:service network restart
  • 1
  • 2
  • 3

对于不是Centos 6.7的报错解决:
如果在cd /var/cache/yum/x86_64/6/有文件夹erlang-solutions可以按照如下解决:
需要如下操作:

  • cd /var/cache/yum/x86_64/6/erlang-solutions
  • 修改 primary.xml.gzsha 的加密值 在这里插入图片描述
  • sha1sum primary.xml.gz会返回一个加密后的字符串 在这里插入图片描述
  • vim repomd.xml ,在repomd.xml 中修改<data type="primary"> <checksum type="sha">结果为 sha1sum 命令结果</checksum>
  • 最后在执行yum install erlang就可以了
2.1.2.4 查看是否安装成功

erl -version

2.2 安装RabbitMQ Server

2.2.1 下载RabbitMQ Server

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.5.1/rabbitmq-server-3.5.1-1.noarch.rpm
如果下载失败,或者下载不下来,就在浏览器里进入这个链接下载下来,然后在导入进去,也可以

2.2.2 导入秘钥并安装

导入秘钥:rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
安装:yum install rabbitmq-server-3.5.1-1.noarch.rpm

2.3 启动RabbitMQ

2.3.1 加入开机自启

chkconfig rabbitmq-server on

2.3.2 管理rabbitMQ 服务

  • 启动:/sbin/service rabbitmq-server start
  • 关闭:/sbin/service rabbitmq-server stop
  • 重启:/sbin/service rabbitmq-server restart

3 安装Web管理界面插件

3.1 安装命令

rabbitmq-plugins enable rabbitmq_management

3.2 安装成功后内容

	The following plugins have been enabled:
	  mochiweb
	  webmachine
	  rabbitmq_web_dispatch
	  amqp_client
	  rabbitmq_management_agent
	  rabbitmq_management
	Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.3 检测安装状态

rabbitmqctl status
如下:
在这里插入图片描述

3.4 设置RabbitMQ远程ip登录

这里我们以创建个rabbitmq帐号,密码123456为例,创建一个账号并支持远程ip访问。

3.4.1 创建账号

rabbitmqctl add_user rabbitmq 123456

3.4.2 设置用户角色

rabbitmqctl set_user_tags rabbitmq administrator

3.4.3 设置用户权限

rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*"

3.4.4 查看当前用户和角色

rabbitmqctl list_users

3.5 登录

浏览器输入:serverip:15672。其中serveripRabbitMQ-Server所在主机的ip。

3.6 java 调用连接拒绝

3.6.1 用户名密码错误

报错:
ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
解决:

  • 仔细检查下账号密码是否正确
  • 登录后把如下的Can access virtual hosts 修改为/
    在这里插入图片描述

3.6.2 Centos7改主机名两个地方一致

对于Centos7要修改主机名保持的话,用hostnamectl
在这里插入图片描述
还有在/etc/hosts这个文件也要改一下
在这里插入图片描述
注意:如果rabbitmq启动很久,或关闭很久,说明就是主机名不一致了,进而导致java连接也会超时

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/823251
推荐阅读
相关标签
  

闽ICP备14008679号