rabbitMQ安装以及遇到的问题

						rabbitMQ安装以及遇到的问题
   开发工具与关键技术:Linux 
   作者:熊俊杰
   撰写时间:2021.5.18

首先我们需要先了解什么是rabbitMQ,其实这就是消息队列,消息队列更多应用于类似电商购物秒杀类的业务处理,当庞大的用户访问一个商品的时候,按照传统的方式,下单过程要等到调用完毕之后才能返回下单成功,如果网络产生波动等原因使得商品服务扣库存延迟或者失败,会带来较差的用户体验,如果在高并发的场景下,这样的处理显然是不合适的。
而消息队列就可以用来解决这方面的难题,rabbitmq消息队列提供一个异步通信机制,消息的发送者不必一直等待到消息被成功处理才返回,而是立即返回。消息中间件负责处理网络通信,如果网络连接不可用,消息被暂存于队列当中,当网络畅通的时候在将消息转发给相应的应用程序或者服务,当然前提是这些服务订阅了该队列。如果在商品服务和订单服务之间使用消息中间件,既可以提高并发量,又降低服务之间的耦合度。
首先我们需要先知道如何安装rabbitmq,安装rabbitMQ之前需要先安装erlang,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。Erlang语言在数据交互方面性能优秀,有着和原生Socket一样的延迟,这也是RabbitMQ高性能的原因所在。

Linux安装erlang:
安装erlang之前必须先安装依赖:

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel

下载erlang安装包(会比较慢,建议去官网直接下载)

erlang官网:https://www.erlang.org/downloads
Wget http://erlang.org/download/otp_src_22.0.tar.gz 

解压: tar -zxvf otp_src_22.0.tar.gz
将移动安装包:mv otp_src_22.0 /usr/local/
切换目录: cd /usr/local/otp_src_22.0/
创建即将安装的目录: mkdir …/erlang
配置安装路径: ./configure --prefix=/usr/local/erlang
如果遇到报错,直接忽视,那个报错是说无法生成桌面应用
安装: make install

查看一下是否安装成功: ll /usr/local/erlang/bin
添加环境变量:echo ‘export PATH=$PATH:/usr/local/erlang/bin’ >> /etc/profile
刷新环境变量: source /etc/profile
输入erl进入erlang环境:erl
在里面输入halt().命令退出来(那个点号别忘记)

接下安装rabbitMQ:

rabbitmq下载地址:

https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.14

Linux下载:

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-generic-unix-3.8.14.tar.xz

由于是tar.xz格式的所以需要用到xz,没有的话就先安装

yum install -y xz

解压:tar -xvf rabbitmq-server-generic-unix-3.8.14.tar

移走: mv rabbitmq_server-3.8.14/ /usr/local/

改名: mv /usr/local/rabbitmq_server-3.8.14 rabbitmq

配置环境变量:

echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile

刷新环境变量: source /etc/profile

启动命令
启动: rabbitmq-server -detached
停止:rabbitmqctl stop
状态:rabbitmqctl status
防火墙之类的请自行处理(5672和15672端口),反正我是从来不开防火墙。

开启web插件: rabbitmq-plugins enable rabbitmq_management
访问:http://127.0.0.1:15672/

15672是客户端插件的地址,而rabbitmq默认的端口号就是5672,所以在java里面修改端口号为15672就ok了!!!
guest 为默认用户,密码也是guest
查看所有用户: rabbitmqctl list_users
添加一个用户: rabbitmqctl add_user Test 123456

配置权限:

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

查看用户权限:

rabbitmqctl list_user_permissions Test 

设置tag:

 rabbitmqctl set_user_tags Test administrator

删除用户(安全起见,删除默认用户):

 rabbitmqctl delete_user guest

问题:

.erlang.cookie must be accessible by owner only

出现原因:
出现这个情况是因为这个文件的权限有问题
出现场景:
rabbitmq安装时由于该文件不存在,会自动创建并且赋权,是不会报这个错误

当rabbitmq重启时,可能该文件的权限被修改,重启时会报这个错误

或者使用docker挂载该文件时,挂载的文件权限不是400(所有者读)/600(所有者读写)/700(所有者读写执) 时会报错

以rpm安装rabbitmq的方式
解决办法:
在挂载的主机上运行 chmod 700 /var/lib/rabbitmq/.erlang.cookie

以解压缩安装rabbitmq的方式
解决办法:在挂载的主机上运行 chmod 700 /root/.erlang.cookie

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值