RabbitMQ介绍和安装

 

1.1.什么是mq

消息队列(MessageQueue,简称MQ):是在消息的传输过程中保存消息的容器。

MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka,以及阿里开源的RocketMQ。

1.2.选型和对比

1.从社区活跃度

​ 按照目前网络上的资料,RabbitMQ 、activeMQ 、ZeroMQ 三者中,综合来看,RabbitMQ是首选。

2.持久化消息比较

​ ZeroMq不支持,ActiveMq 和RabbitMq 都支持。持久化消息主要是指我们机器在不可抗力因素等情况下挂掉了,消息不会丢失的机制。

3.综合技术实现

​ 可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统等等。RabbitMq / Kafka 最好,ActiveMq 次之,ZeroMq 最差。当然ZeroMq 也可以做到,不过自己必须手动写代码实现,代码量不小。尤其是可靠性中的:持久性、投递确认、发布者证实和高可用性。

4.高并发

​ 毋庸置疑,RabbitMQ 最高,原因是它的实现语言是天生具备高并发高可用的erlang 语言。

5.比较关注的比较, RabbitMQ和 Kafka

​ RabbitMQ比Kafka 成熟,在可用性上,稳定性上,可靠性上, RabbitMq 胜于 Kafka (理论上)。另外,Kafka 的定位主要在日志等方面, 因为Kafka 设计的初衷就是处理日志的,可以看做是一个日志(消息)系统一个重要组件,针对性很强,所以如果业务方面还是建议选择 RabbitMq 。还有就是,Kafka 的性能(吞吐量、TPS )比RabbitMq 要高出来很多

1.3.什么是RabbitMQ?

RabbitMQ是一个使用 erlang 编写的 AMQP(高级消息队列协议)的服务实现,简单来说,就是一个功能强大的消息队列服务。

1.4.为什么要使用RabbitMQ ?

1.4.1.解耦

传统模式:系统间耦合性太强,如图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!

中间件模式:将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。

1.4.2.异步

传统模式: 一些非必要的业务逻辑以同步的方式运行,太耗费时间

中间件模式: 将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度

1.4.3.削峰

传统模式:并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常

中间件模式: 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息或者只处理前100条消息。

2.安装RabbitMQ

2.1.拷贝centos

1、右击centos选中管理-->克隆

 

2、点击下一步

 

3、旋转阀虚拟机中的当前状态,单机下一步

 

4、选中创建完整克隆,点击下一步

 

5、设置虚拟机的名称和位置,点击完成

 

2.1.下载

官网下载地址:http://www.rabbitmq.com/download.html

2.2.安装Erlang

上传安装包

依次执行命令:

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

2.3.安装RabbitMQ

上传安装包

2.3.1.安装RabbitMQ

rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

 

2.3.2.启动、停止

#开启
service rabbitmq-server start 
​#停止
service rabbitmq-server stop 
​
service rabbitmq-server restart 
​
service rabbitmq-server status 

 

2.3.3.设置开机启动

chkconfig rabbitmq-server on

 

2.3.4.防火墙开放15672端口

/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
​
/etc/rc.d/init.d/iptables save

 

2.3.5.开启web界面管理工具

rabbitmq-plugins enable rabbitmq_management
​
service rabbitmq-server restart

 

2.3.6.创建账户

这里我们以创建个admin帐号,密码1111为例,创建一个账号并支持远程ip访问。

1.创建账号

rabbitmqctl  add_user admin 1111

 

2.设置用户角色

rabbitmqctl  set_user_tags admin  administrator

 

3.设置用户权限

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

 

4.设置完成后可以查看当前用户和角色(需要开启服务)

rabbitmqctl list_users

 

账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆

5.测试

​ 浏览器输入:serverip:15672。其中serverip是RabbitMQ-Server所在主机的ip,15672是RabbitMQ-Server的端口号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值