Erlang 22.3
RabbitMQ
介绍
RabbitMQ是Erlang语言编写,所以Erang环境必须要有,注:Erlang环境一定要与RabbitMQ版本匹配:https://www.rabbitmq.com/which-erlang.html
安装Erlang
Erlang下载地址:
https://www.rabbitmq.com/releases/erlang/(根据自身需求及匹配关系,下载对应rpm包)
https://www.erlang.org/downloads
http://erlang.org/download/ 推荐
1 安装Erlang编译安装必要依赖
sudo yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git
2 下载Erlang
wget http://erlang.org/download/otp_src_22.3.tar.gz
3 编译并安装
# 解压
tar -zxvf otp_src_22.3.tar.gz
cd otp_src_22.3/
#编译&安装
./otp_build autoconf
./configure && make && sudo make install
默认安装在/usr/local/lib/erlang/目录下
4 验证
erl -version
erl
[root@VM_0_2_centos otp_src_22.3]# erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7
[root@VM_0_2_centos otp_src_22.3]# erl
Erlang/OTP 22 [erts-10.7] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]
Eshell V10.7 (abort with ^G)
1>
安装MQ
下载地址
https://github.com/rabbitmq/rabbitmq-server/releases 推荐
https://www.rabbitmq.com/install-rpm.html
https://www.rabbitmq.com/releases/rabbitmq-server/
https://dl.bintray.com/rabbitmq/all/rabbitmq-server/ 推荐
这个文件
rabbitmq-server-generic-unix-3.8.3.tar.xz
1.下载 要是不能下载 则手动下载好之后传到服务器
wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.8.3/rabbitmq-server-generic-unix-3.8.3.tar.xz
2.解压并配置环境变量
注意下载下来的文件是xz格式的,xz命令 XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。最初 XZ Utils 的是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 WINDOWS 平台的特性,所以 XZ Utils 为以适应 POSIX 平台作了大幅的修改。XZ Utils 的出现也是为了取代 POSIX 系统中旧的 LZMA Utils。
解压:
xz -d rabbitmq-server-generic-unix-3.8.3.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.8.3.tar
mv rabbitmq_server-3.8.3 /usr/local/
3 配置环境变量:
vim /etc/profile
# 在最后一行添加如下命令
export PATH=$PATH:/usr/local/lib/erlang/bin:/usr/local/rabbitmq_server-3.8.3/sbin
source /etc/profile
4 启动MQ
报错 ERROR: node with name "rabbit" already running on "VM_0_2_centos"
如果启动不了 看一下进程里是否已启动
rabbitmq-plugins enable rabbitmq_management
rabbitmq-server 或 rabbitmq-server -detached(后台运行)
5 添加新用户
默认账号密码是(guest/guest)
这里新添加账号:admin/admin
注:需要在mq服务运行的时候才可以添加
#添加用户
#rabbitmqctl add_user 账号 密码
rabbitmqctl add_user admin admin
#分配用户标签(admin为要赋予administrator权限的刚创建的那个账号的名字)
rabbitmqctl set_user_tags admin administrator
#设置权限<即开启远程访问>(如果需要远程连接,例如java项目中需要调用mq,则一定要配置,否则无法连接到mq,admin为要赋予远程访问权限的刚创建的那个账号的名字,必须运行着rabbitmq此命令才能执行)
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
6.访问后台
7.停止mq
rabbitmqctl shutdown
8.解除guest账户的本地登录限制
修改核心配置参数
rabbitmq的核心配置参数在/usr/local/rabbitmq_server-3.8.3/ebin/rabbit.app里
vim /usr/local/rabbitmq_server-3.8.3/ebin/rabbit.app
# 找到loopback_users 修改为如下内容(去除 <<"guest">>中<<"">>) {loopback_users, [guest]},
问题
参考:https://blog.csdn.net/G971005287W/article/details/109811287
MQ An unexpected connection driver error occured
解决方案 需要赋权限
2.
问题
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'CRM-weixin-msg' in vhost '/': received 'false' but current is 'true', class-id=50, method-id=10)
解决方案
安装方案二
更新基本系统
yum -y update
安装Erlang
RabbitMQ是用Erlang语言编写的,在本教程中我们将安装最新版本的Erlang到服务器中。 Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库。 运行以下命令相同。
yum -y install epel-release
yum -y update
现在使用以下命令安装Erlang。
yum -y install erlang socat