rabbitMQ服务安装
1.rabbitMQ简介
1.1、rabbitMQ的优点(适用范围)
1. 基于erlang语言开发具有高可用高并发的优点,适合集群服务器。
2. 健壮、稳定、易用、跨平台、支持多种语言、文档齐全。
3. 有消息确认机制和持久化机制,可靠性高。
4. 开源
其他MQ的优势:
1. Apache ActiveMQ曝光率最高,但是可能会丢消息。
2. ZeroMQ延迟很低、支持灵活拓扑,但是不支持消息持久化和崩溃恢复。
2.环境配置与安装
1、Erlang环境安装
RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境。
从Erlang的官网 http://www.erlang.org/download.html 下载最新的erlang安装包,我下载的版本是 otp_src_R14B03.tar.gz 。然后:
$ tar xvzf otp_src_R14B03.tar.gz
$ cd otp_src_R14B03
$ ./configure
编译后的输出
如下图:
注:
可能会报错 configure: error: No curses library functions found
configure: error: /bin/sh '/home/liyixiang/erlang/configure' failed for erts
原因是缺少ncurses包
apt-cache search ncurses
apt-get install libncurses5-dev
然后重新执行
./configure
提示没有wxWidgets和fop、ssh、odbc、ssl,但是问题不大。继续:
make
然后:
sudo make install
配置erlang环境变量
修改/etc/profile文件,增加下面的环境变量:(vim profile i插入 编辑完毕ESC退出 wq!强制修改)
#set erlang environment
export PATH=$PATH:/usr/erlang/bin:$PATH
source profile使得文件生效
下面是我的
RabbitMQ-Server安装
安装完Erlang,开始安装RabbitMQ-Server。安装方法有三种,这里笔者三者都试过了,就只有以下这个方法成功了。
直接使用:
apt-get install rabbitmq-server
安装完成后会自动打开:
使用命令查看rabbitmq运行状态:
rabbitmqctl status
停止
rabbitmqctl stop
开启
rabbitmq-server start
3、rabbitmq web管理页面插件安装
输入以下命令
3、rabbitmq web管理页面插件安装输入以下命令
cd /usr/lib/rabbitmq/bin/
rabbitmq-plugins enable rabbitmq_management
这里笔者一直安装不成功。
如果安装成功打开浏览器,输入 http://[server-name]:15672/ 如 http://localhost:15672/ ,会要求输入用户名和密码,用默认的guest/guest即可(guest/guest用户只能从localhost地址登录,如果要配置远程登录,必须另创建用户)。
如果要从远程登录怎么做呢?处于安全考虑,guest这个默认的用户只能通过http://localhost:15672来登录,其他的IP无法直接用这个guest帐号。这里我们可以通过配置文件来实现从远程登录管理界面,只要编辑/etc/rabbitmq/rabbitmq.config文件(没有就新增),添加以下配置就可以了。
4、添加用户
vim /etc/rabbitmq/rabbitmq.config
然后添加
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["asdf"]}]}
].
注意上面有个点号
现在添加了一个新授权用户asdf,可以远程使用这个用户名。记得要先用命令添加这个命令才行:
cd /usr/lib/rabbitmq/bin/
#用户名与密码
sudo rabbitmqctl add_user asdf 123456
用户设置为administrator才能远程访问
sudo rabbitmqctl set_user_tags asdf administrator
sudo rabbitmqctl set_permissions -p / asdf ".*" ".*" ".*"
其实也可以通过管理平台页面直接添加用户和密码等信息。如果还不能远程访问或远程登录检查是不是5672, 15672端口没有开放!!!!!!
5、开放端口
ufw allow 5672