引言
你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。
消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。
RabbitMQ简介
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
rabbitmq安装
一、 安装环境依赖
1.需要java1.8 ,安装依赖库文件
yum install unixODBC unixODBC-devel
2.安装erlang
yum install erlang
3.安装erlang
-
下载安装包
wget http://erlang.org/download/otp_src_23.0.tar.gz
-
解压,并进入目录
tar -zxvf otp_src_23.0.tar.gz
-
执行configure 脚本,检测环境
./configure --prefix=/usr/local/erlang
-
编译和安装
make&&make install
-
配置环境变量
vim /etc/profile export PATH=$PATH:/usr/local/erlang/bin
-
刷新配置使其生效
source /etc/profile
二、安装rabbitmq
1.选择合适的版本
在网页https://www.rabbitmq.com/which-erlang.html根据已经安装的erlang选择合适的rabbitmq版本
https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.8.5/rabbitmq-server-generic-unix-3.8.5.tar.xz
2.解压
- 执行xz 命令变成tar后缀文件
xz -d rabbitmq-server-generic-unix-3.8.5.tar.xz
- 执行tar 解压到指定目录
tar -xvf rabbitmq-server-generic-unix-3.8.5.tar -C /usr/local/rabbitmq_server
3.添加环境变量
vim /etc/profile
PATH=$PATH:/usr/local/rabbitmq_server/sbin
三、启动
1.常用命令
-
启动
service rabbitmq-server start
-
查看状态
service rabbitmq-server status
-
关闭
service rabbitmq-server stop
2.配置远程访问
-
添加用户
rabbitmqctl add_user admin password
-
设置用户标签
rabbitmqctl set_user_tags admin administrator
-
tag(administrator,monitoring,policymaker,management)
-
设置用户权限(接受来自所有Host的所有操作)
rabbitmqctl set_permissions -p "/" admin '.*' '.*' '.*'
-
查看用户权限
rabbitmqctl list_user_permissions admin
-
vim /etc/rabbitmq/rabbitmq.config
-
保存以下内容,后面的点一定要有
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["admin"]}]}
].