RabbitMQ是一个开源的遵循 AMQP协议实现的基于 Erlang语言编写,即需要先安装部署Erlang环境再安装RabbitMQ环境。
我们在了解RabbitMQ执勤应该先了解一下MQ。
MQ:消息队列(Message Queue,简称MQ):是在消息的传输过程中保存消息的容器。用于分布式系统之间进行通信。
综合上面的材料得出以下两点:
中小型软件公司,建议选RabbitMQ.一方面,erlang语言天生具备高并发的特性,RabbitMQ的社区十分活跃,可以解决开发过程中遇到的bug,这点对于中小型公司来说十分重要。不考虑rocketmq和kafka的原因是中小型软件公司不如互联网公司,数据量没那么大,选消息中间件,应首选功能比较完备的,所以kafka和rocketmq排除。
大型软件公司,根据具体使用在rocketMq和kafka之间二选一。一方面,大型软件公司,具备足够的资金搭建分布式环境,也具备足够大的数据量。针对rocketMQ,大型软件公司也可以抽出人手对rocketMQ进行定制化开发,毕竟国内有能力改JAVA源码的人,还是相当多的。至于kafka,根据业务场景选择,如果有日志采集功能,肯定是首选kafka了
1、下载
官网下载地址:Downloading and Installing RabbitMQ — RabbitMQ
2、安装Erlang
上传安装包Linux
依次执行命令:
1)rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps
2)rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps
3)rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps
3、安装RabbitMQ
1rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
4、启动、停止
service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart
service rabbitmq-server status
5、设置开机启动
chkconfig rabbitmq-server on
6、防火墙开放15672端口
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save
7、开启web界面管理工具
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
8、创建账户
这里我们以创建个admin帐号,密码1111为例,创建一个账号并支持远程ip访问。
1.创建账号
rabbitmqctl add_user admin 11112.设置用户角色
rabbitmqctl set_user_tags admin administrator3.设置用户权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"4.设置完成后可以查看当前用户和角色(需要开启服务)
rabbitmqctl list_users账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆
9、测试
浏览器输入:serverip:15672。其中serverip是RabbitMQ-Server所在主机的ip,15672是RabbitMQ-Server的端口号
端口:
如果不使用guest,我们也可以自己创建一个用户:
1、 超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、 监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、 策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
4、 普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
虚拟主机:类似于mysql中的database。他们都是以“/”开头
1、点击用户名
2、设置权限
3、查看效果
然后我们的RabbitMQ的准备工作就已经完成,接下来就可以写java程序来开动了