Web基础配置篇(十): ActiveMQ与RabbitMQ的安装配置及使用
一、概述
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)
常见的消息中间件产品:
(1)ActiveMQ
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。这里介绍的是ActiveMQ的使用。
(2)RabbitMQ
AMQP协议的领导实现,支持多种场景。淘宝的MySQL集群内部有使用它进行通讯,OpenStack开源云平台的通信组件,最先在金融行业得到运用。
(3)ZeroMQ
史上最快的消息队列系统
(4)Kafka
Apache下的一个子项目 。特点:高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。适合处理海量数据。
Jms
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
AMQP
AMQP是一种协议,更准确的说是一种binary wire-level protocol(链接协议)。这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式。这使得实现了AMQP的provider天然性就是跨平台的。意味着我们可以使用Java的AMQP provider,同时使用一个python的producer加一个rubby的consumer。从这一点看,AQMP可以用http来进行类比,不关心实现的语言,只要大家都按照相应的数据格式去发送报文请求,不同语言的client均可以和不同语言的server链接。
本篇主要介绍下ActiveMQ与RabbitMQ的安装配置及使用。
**如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以<a
href="https://jq.qq.com/?_wv=1027&k=52sgH1J"
target="_blank">
加入我们的java学习圈,点击即可加入
</a>
,共同学习,节约学习时间,减少很多在学习中遇到的难题。**
二、ActiveMQ
2.1 windows上ActiveMQ的安装
ActiveMq可以在ActiveMq官网 下载并安装。
选择需要的版本,下载完成后,解压文件(window下用winrar/其他解压工具,linux下tar命令)并进入文件夹的bin目录下:
如图所示:
在这里插入图片描述
windows下可以在powershell下用:
代码语言:javascript复制./activemq start 或者./activemq.bat start
在cmd下只能用:
代码语言:javascript复制activemq.bat start
2.2 Linux上ActiveMQ的安装
ActiveMq可以在ActiveMq官网 下载并安装。
比如下载linux版本5.15.9:
http://mirror.bit.edu.cn/apache//activemq/5.15.9/apache-activemq-5.15.9-bin.tar.gz
下载后解压:
tar -xvf apache-activemq-5.15.9-bin.tar.gzcd apache-activemq-5.15.9/bin
启动:
./activemq start
2.3 修改Admin用户名密码在ActiveMQ的conf目录下,找到: jetty-realm.properties。jetty-realm.properties文件默认存储:
admin: admin, admin
user: user, user
代码语言:javascript复制规则为
username: password [,rolename ...]
修改为:
cff: 123, admin
user: user, user
代码语言:javascript复制这样可以用cff/123登录了。
### 2.4 启动后界面
启动后浏览器输入 http://127.0.0.1:8161/ 如图所示:
![在这里插入图片描述](https://www.pomit.cn/upload/picture/20190520/178615078994176.png)
点击 Manage ActiveMQ broker 跳转到 http://127.0.0.1:8161/admin/; 可以在里面查看消息队列等信息及统计。
![在这里插入图片描述](https://www.pomit.cn/upload/picture/20190725/201980671717632.png)
## 三、RabbitMQ
### 3.1 Windows上RabbitMQ的安装部署
#### 3.1.1 安装RabbitMQ Server
RabbitMQ可以在[RabbitMQ官网](https://www.rabbitmq.com/) 下载并安装。
这里只说windows的安装过程:
- 1.下载rabbitmq-server-3.7.15.exe,下载完成后,双击安装,会提示先安装erlang,erlang的官方地址是:[https://www.erlang.org/downloads](https://www.erlang.org/downloads)
- 2.安装完erlang,然后安装RabbitMQ,安装过程没有任何需要注意的,就是一路往下。
- 3.RabbitMQ安装完成后。找到RabbitMQ的路径:
比如我的windows10会出现这个:
![在这里插入图片描述](https://www.pomit.cn/upload/picture/20190626/191608239776000.png)
然后我点击RabbitMQ Service - start:
![在这里插入图片描述](https://www.pomit.cn/upload/picture/20190626/191608451625216.png)
然后RabbitMQ就在5672端口监听消息了。
#### 3.1.2 开启RabbitMQ Manager
**开启Manager:**
为了启动管理服务,能够查看RabbitMQ的界面,我们需要打开RabbitMQ Command Prompt命令行,然后切换到RabbitMQ安装目录下的sbin目录,输入命令```rabbitmq-plugins.bat enable rabbitmq_management```:
![在这里插入图片描述](https://www.pomit.cn/upload/picture/20190626/191611319914752.png)
这里不建议自己启动命令提示符,或者使用powershell,因为会出现```ERLANG_HOME not set correctly.```错误。
**添加用户:**
打开RabbitMQ Command Prompt命令行,然后切换到RabbitMQ安装目录下的sbin目录,输入下面命令:
添加用户pomit,密码123456
rabbitmqctl.bat add_user pomit 123456
赋予用户pomit管理员角色
rabbitmqctl.bat set_user_tags pomit administrator
代码语言:javascript复制### 3.2 Linux上RabbitMQ的安装部署
#### 3.2.1 安装RabbitMQ Server
网上有很多教程,不过我还是觉得这个写得好:[原文](https://blog.csdn.net/y_k_y/article/details/81350274)
这个里面写了很多方法,但是经过试验,还是使用脚本安装省心,还不会出错。
**安装erlang和rabbitmq-server:**
使用脚本安装方法:
#创建erlang.repo库
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
#安装
yum install erlang
#创建rabbitmq-server.repo库
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
#安装
yum install rabbitmq-server
代码语言:javascript复制如果是root安装,sudo可以去掉。
**注意:**这些命令都执行完成后,还是可能有问题。比如在yum install rabbitmq-server的过程中,可能会出现:
```Package: rabbitmq-server-3.7.16-1.el6.noarch (rabbitmq_rabbitmq-server) Requires: socat```
这时候就要再安装socat:
代码语言:javascript复制wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/socat-1.7.2.4-1.el6.rf.x86_64.rpm
yum install socat-1.7.2.4-1.el6.rf.x86_64.rpm
#安装完成之后,重新安装rabbitmq-server
yum install rabbitmq-server
启动rabbitmq-server:service rabbitmq-server start
这时RabbitMQ就在5672端口监听消息了。
3.2.2 开启RabbitMQ Manager
输入命令:
代码语言:javascript复制rabbitmq-plugins enable rabbitmq_management
新建用户:
如果这时候浏览器输入http://127.0.0.1:15672/
进行访问的话,使用guest/guest是登录不上的,因为guest用户不允许远程登录,所以需要新建一个用户,并加入到administrator角色中,然后浏览器就可以使用新建的用户登录了:
# 添加用户pomit,密码123456
rabbitmqctl add_user pomit 123456
# 赋予用户pomit管理员角色
rabbitmqctl set_user_tags pomit administrator
3.3 界面登录
浏览器输入http://127.0.0.1:15672/
进行访问:
在这里插入图片描述
使用默认账号登录:guest/guest
在这里插入图片描述
到这里,安装工作搞一段落了。