CentOS7环境安装使用专业的消息队列产品RabbitMQ
2017-02-13 16:16
741 查看
我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis,当然还有重量级的专业产品rabbitmq,rabbitmq好就好在是用erlang(二郎神)开发的,它那天生的OTP并行计算框架,轻而易举的进程间通讯,我都恨不得将后端的内存计算框架全部换成erlang。。。开个玩笑,这篇我们具体来讲讲erlang开发的一个成品,叫做rabbitmq。
一. 安装Erlang
刚才也说了,rabbitmq只不过是erlang开发的一个成品而已,所以我们首先一定要安装好erlang环境才可以
1、安装:yum install erlang
2、检查erl
输入命令:erl
二、安装RabbitMQ:
1、下载安装包:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
2、安装:
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
3、启用web管理插件
rabbitmq-plugins enable rabbitmq_management
4、启动RabbitMQ
chkconfig rabbitmq-server on
rabbitmq-server start
5、查看状态
rabbitmqctl
status
6、增加用户
rabbitmqctl add_user xyt xyt
rabbitmqctl
set_user_tags xyt administrator
7、查看用户列表
rabbitmqctl
list_users
三、防火墙配置
编辑:vi /etc/sysconfig/iptables
添加:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
重启防火墙:service iptables start
四、验证RabbitMQ
键入127.0.0.1:15672 就可以看到管理界面啦。
异常:
Exception in thread "main" java.io.IOException
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:378)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:678)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:722)
at upsmart.zhsen.ServerProducer.main(ServerProducer.java:33)
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for
user 'mq', class-id=10, method-id=40)
at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:361)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:226)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)
... 4 more
原因:
用户‘mq’没有权限访问‘/’
sudo rabbitmqctl list_users
列出用户权限
Listing users ...
mq
[administrator]
guest
[administrator]
sudo rabbitmqctl set_permissions -p / mq '.*' '.*' '.*'
该命令使用户mq具有‘/’这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
一. 安装Erlang
刚才也说了,rabbitmq只不过是erlang开发的一个成品而已,所以我们首先一定要安装好erlang环境才可以
1、安装:yum install erlang
2、检查erl
输入命令:erl
二、安装RabbitMQ:
1、下载安装包:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
2、安装:
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
3、启用web管理插件
rabbitmq-plugins enable rabbitmq_management
4、启动RabbitMQ
chkconfig rabbitmq-server on
rabbitmq-server start
5、查看状态
rabbitmqctl
status
6、增加用户
rabbitmqctl add_user xyt xyt
rabbitmqctl
set_user_tags xyt administrator
7、查看用户列表
rabbitmqctl
list_users
三、防火墙配置
编辑:vi /etc/sysconfig/iptables
添加:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
重启防火墙:service iptables start
四、验证RabbitMQ
键入127.0.0.1:15672 就可以看到管理界面啦。
RabbitMq权限问题
Exception in thread "main" java.io.IOException
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:378)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:678)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:722)
at upsmart.zhsen.ServerProducer.main(ServerProducer.java:33)
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for
user 'mq', class-id=10, method-id=40)
at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:361)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:226)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)
... 4 more
原因:
用户‘mq’没有权限访问‘/’
sudo rabbitmqctl list_users
列出用户权限
Listing users ...
mq
[administrator]
guest
[administrator]
sudo rabbitmqctl set_permissions -p / mq '.*' '.*' '.*'
该命令使用户mq具有‘/’这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
相关文章推荐
- 使用专业的消息队列产品rabbitmq之centos7环境安装
- RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列
- Linux 下开源消息队列系统 RabbitMQ 安装使用
- RabbitMQ 消息队列 安装及使用
- RabbitMQ消息队列之一:RabbitMQ的环境安装及配置
- 消息队列的使用 RabbitMQ(一): 安装与总体介绍
- 消息队列的使用 RabbitMQ (二): Windows 环境下集群的实现与优化
- RabbitMQ消息队列之一:RabbitMQ的环境安装及配置
- Centos5.4 消息队列rabbitmq的安装及使用
- php 消息队列 rabbitmq 的安装使用
- RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列
- RabbitMq 消息队列的安装、使用 、原理
- RabbitMQ消息队列安装和配置以及推送消息
- RabbitMQ消息队列(六):使用主题进行消息分发
- RabbitMQ消息队列(六):使用主题进行消息分发[转]
- RabbitMQ消息队列(六):使用主题进行消息分发(转)
- linux下安装配置rabbitmq(消息队列系统)
- 柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装、配置与监控
- RabbitMQ消息队列(六):使用主题进行消息分发
- 在C#中使用消息队列RabbitMQ