加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java消息队列总结篇(ActiveMQ、RabbitMQ、ZeroMQ、Kafka)

发布时间:2019-05-30 11:02:58 所属栏目:建站 来源:JavaSpring高级进阶
导读:一、动静行列概述 动静行列中间件是漫衍式体系中重要的组件,首要办理应用解耦,异步动静,流量削锋等题目,实现高机能,高可用,可伸缩和最终同等性架构。今朝行使较多的动静行列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。 二、动静行列应

RabbitMQ是行使Erlang说话开拓的开源动静行列体系,基于AMQP协议来实现。AMQP的首要特性是面向动静、行列、路由(包罗点对点和宣布/订阅)、靠得住性、安详。AMQP协议更多用在企业体系内,对数据同等性、不变性和靠得住性要求很高的场景,对机能和吞吐量的要求还在其次。

RocketMQ是阿里开源的动静中间件,它是纯Java开拓,具有高吞吐量、高可用性、得当大局限漫衍式体系应用的特点。RocketMQ思绪发源于Kafka,但并不是Kafka的一个Copy,它对动静的靠得住传输及事宜性做了优化,今朝在阿里团体被普及应用于买卖营业、充值、流计较、动静推送、日记流式处理赏罚、binglog分发等场景。

ZeroMQ只是一个收集编程的Pattern库,将常见的收集哀求情势(分组打点,链接打点,宣布订阅等)模式化、组件化,简而言之socket之上、MQ之下。对付MQ来说,收集传输只是它的一部门,更多必要处理赏罚的是动静存储、路由、Broker处事发明和查找、事宜、斲丧模式(ack、重投等)、集群处事等。

RabbitMQ/Kafka/ZeroMQ 都能提供动静行列处事,但有很大的区别。

在面向处事架构中通过动静署理(好比 RabbitMQ / Kafka等),行使出产者-斲丧者模式在处事间举办异步通讯是一种较量好的头脑。

由于处事间依靠由强耦合酿成了松耦合。动静署理城市提供耐久化机制,在斲丧者负载高可能掉线的环境下会把动静生涯起来,不会丢失。就是说出产者和斲丧者不必要同时在线,这是传统的哀求-应答模式较量难做到的,必要一此中间件来专门做这件事。其次动静署理可以按照动静自己做简朴的路由计策,斲丧者可以按照这个来做负载平衡,营业疏散等。

弱点也有,就是必要特殊搭建动静署理集群(但利益是大于弱点的 ) 。

ZeroMQ 和 RabbitMQ/Kafka 差异,它只是一个异步动静库,在套接字的基本上提供了相同于动静署理的机制。行使 ZeroMQ 的话,必要对本身的营业代码举办改革,倒霉于处事解耦。

RabbitMQ 支持 AMQP(二进制),STOMP(文本),MQTT(二进制),HTTP(内里包装其他协议)等协议。Kafka 行使本身的协议。

Kafka 自身处事和斲丧者都必要依靠 Zookeeper。

RabbitMQ 在有大量动静会萃的环境下机能会降落,Kafka不会。事实AMQP计划的初志不是用来耐久化海量动静的,而Kafka一开始是用来处理赏罚海量日记的。

总的来说,RabbitMQ 和 Kafka 都黑白常优越的漫衍式的动静署理处事,只要公道陈设,不作,根基上可以满意出产前提下的任何需求。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读