一:简介
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
二:安装
前提:配置JDK
vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/chainup/jdk8
export JRE_HOME=/usr/local/chainup/jdk8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
依赖:
yum install -y gcc gcc-c++ make kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
1:安装Erlang
1):下载otp_src_20.1.tar.gz
wget http://erlang.org/download/otp_src_20.1.tar.gz
2):编译安装
tar -xvzf otp_src_20.1.tar.gz
mkdir -p /data/qt/erlang
cd otp_src_20.1
./configure --prefix=/data/qt/erlang/
make && make install
3):添加环境变量
export PATH=/data/qt/erlang/bin:$PATH
2:安装RabbitMQ
1):下载rabbitmq-server-generic-unix-3.6.12.tar.xz
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_12/rabbitmq-server-generic-unix-3.6.12.tar.xz
2):解压
xz -d rabbitmq-server-generic-unix-3.6.12.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.6.12.tar
3):添加环境变量
export PATH=/data/qt/rabbitmq_server-3.6.12/sbin:/data/qt/erlang/bin:$PATH
source /etc/profile
4):启动
rabbitmq-server start
补充:
5):rabbitmq-plugins enable rabbitmq_management
三:查看web界面
四、做nginx的反代
在主配置文件中进行更改,并将域名、ip等配好!
五:配置RabbitMQ cluster
1:相同方式部署多台服务器,本次测试部署两台
2:修改/etc/host
10.174.197.84 rabbitmq_1
10.45.232.97 rabbitmq_2
3:修改.erlang.cookie
这个文件是erlang用来发现和互连的基础。我们需要做的很简单,将两个节点中的.erlang.cookie设置成一样的。这是erlang的约定,一样的cookie hash key他认为是合法和正确的连接
4:打开管理界面插件:
rabbitmq-plugins enable rabbitmq_management
5:添加账号:
rabbitmqctl add_user admin admin
6:添加 权限tag
rabbitmqctl set_user_tags admin administrator
7:选择一个节点stop,然后连接到另外节点。
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@stats-db05
rabbitmqctl start_app
参照文档:
https://www.cnblogs.com/web424/p/6761153.html