RabbitMQ消息队列

一:什么是MQ?

定义:消息队列

队列:即为一个消息管道,以管道的形式去做消息传递

二:市面上常见的消息队列开源组件有哪些?

1.ActiceMQ:是老牌的小心中间件,国内很多公司过去运用的还是非常广泛的,功能很强大,但是问题在于没办法确定ActiveMq可以支撑互联网公司的高并发,高负载以及高吞吐的复杂场景,在国内互联网公司落地较少

2.RebbitMQ:好处在于可以支撑高并发,高吞吐、性能很好,同时有非常完善便捷的后台管理界面可以使用。另外,他还支持集群化、高可用部署架构、消息高可靠支持,功能较为完善。而且经过研究,国内各大互联网公司落地大规模RabbitMQ集群支撑自身业务的case较多,国内各种中小型互联网公司使用RabbitMQ的实践也比较多

3.RockMQ:是阿里开源的,经过阿里的生产环境的超高并发、高吞吐的考验,性能卓越,同时还支持分布式事务等特殊场景。而且RocketMQ是基于Java语言开发的,适合深入阅读源码,有需要开源站在源码层面解决线上生产问题,包括源码的二次开发和改造

4.Kafka:提供的消息中间件的功能明显较少一些,相对上述几款MQ中间件要少很多。但是Kafka的优势在于专为超高吞吐量的实时日志采集、实时数据同步、实时数据计算等场景来设计。因此Kafka在大数据领域中配合实时计算技术(比如Spark Streaming、Storm/Filnk)使用的较多

三:使用场景

MQ的不足是:

1.系统更复杂,多了一个MQ组件

2.消息传递路径更长,延时会增加

3.消息可靠性和重复性互为矛盾,消息不丢不重难以同时保证

4.上游无法知道下游的执行结果,这一点是很致命的

什么时候用MQ?

1.数据驱动的任务依赖

2.上游不关心多下游执行结果

3.异步返回执行时间长

MQ主要解决哪些业务问题?

1.应用系统解耦

2.异步请求(同步请求)

3.流量消峰

搭建RabbitMQ环境

1.搭建Erlang的环境

新建一个系统变量:变量名为ERLANG_HOME,变量值为安装Erlang的路径(路径中不要包含bin目录)

2.将新建的系统环境变量添加在PATH中,格式为%ERLANG_HOME%\bin

使用erl命令查看是否安装成功

http://localhost:15672/

添加admin用户

用户角色

(1)超级管理员(administrator)

可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

(2)监控者(monitoring)

可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

(3)策略制定者(policymaker)

可登陆管理控制台(启用management plugin的情况下),同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与administrator的对比,administrator能看到这些内容

(4)普通管理者(management)

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

(5)其他

无法登陆管理控制台,通常就是普通的生产者和消费者。

添加虚拟机

设置权限

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值