主流消息队列对比

更新时间:2023-08-03 05:43:25 阅读: 评论:0

主流消息队列对⽐
Ckafka
Kafka是linkedin开源的MQ系统,主要特点是基于Pull的模式来处理消息消费,追求⾼吞吐量,⼀开始的⽬的就是⽤于⽇志收集和传输,0.8开始⽀持复制,不⽀持事务,适合产⽣⼤量数据的互联⽹服务的数据收集业务。
整体架构图
主流消息队列对⽐
臊子面做法
CMQ
RocketMQ
是阿⾥巴巴在2012年开源的分布式消息中间件,⽬前已经捐赠给Apache基⾦会,已经于2016年11⽉成为 Apache 孵化项⽬,相信RocketMQ的未来会发挥着越来越⼤的作⽤,将有更多的开发者因此受益。
RabbitMQ
RabbitMQ是⼀个AMQP实现,传统的messaging queue系统实现,基于Erlang。⽼牌MQ产品了。AMQP协议更多⽤在企业系统内,对数据⼀致性、稳定性和可靠性要求很⾼的场景,对性能和吞吐量还在其次。
系统架构
RabbitMQ是AMQP协议领先的⼀个实现,它实现了代理(Broker)架构,意味着消息在发送到客户端之前可以在中央节点上排队。此特性使得RabbitMQ易于使⽤和部署,适宜于很多场景如路由、负载均衡或消息持久化等,⽤消息队列只需⼏⾏代码即可搞定。但是,这使得它的可扩展性差,速度较慢,因为中央节点增加了延迟,消息封装后也⽐较⼤。
其他:驯养篮球犬
ActiveMQ  开源
作为经典的MOM(Message Oriented Middleware),ActiveMQ还是在企业应⽤中出场率很⾼的。
ActiveMQ,是Apache出品,最流⾏的,能⼒强劲的开源消息总线。ActiveMQ 是⼀个完全⽀持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应⽤中间仍然扮演着特殊的地位。
可以部署于代理模式和P2P模式。类似于RabbitMQ,它易于实现⾼级场景,⽽且只需付出低消耗。它被誉为消息中间件的“瑞⼠军⼑”。
ActiveMQ的下⼀代产品为Apollo。
HornetQ 开源
跟JBoss绑定在⼀起,应⽤也很普遍。
毕竟JMS是业界标准。
RabbitMQ / ZeroMQ / Disque etc.
毕竟不是说Java应⽤的所有组件和依赖都要⽤Java实现。所以你可以去了解下
ZeroMQ 开源
简介:
ZeroMQ号称是“史上最快的消息队列”,基于c语⾔开发的,实时流处理sorm的task之间的通信就是⽤的zeroMQ。 引⽤官⽅说
法,“ZMQ(以下ZeroMQ简称ZMQ)是⼀个简单好⽤的传输层,像框架⼀样的⼀个socket library, 他使得Socket编程更加简单、简洁和性能更⾼。是⼀个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。 ZMQ的明确⽬标是“成为标准⽹络协议栈的⼀部分,之后进⼊Linux内核”。现在还未看到它们的成功。 但是,它⽆疑是极具前景的、并且是⼈们更加需要的“传统”BSD套接字之上的⼀ 层封装。 ZMQ让编写⾼性能⽹络应⽤程序极为简单和有趣。” 确实,它跟RabbitMQ,ActiveMQ之类有着
塑造的意思相当本质的区别, ZeroMQ根本就不是⼀个消息队列服务器,更像是⼀组底层⽹络通讯库,对原有的Socket API加上⼀层封装, 是我们操作更简便。使⽤时只需要引⼊相应的jar包即可。
特点: ⾼到离谱的吞吐量、可⾃⾏开发持久化、⽀持数据量较⼩的持久化、不过只是保存到内存中。除了点对点 即:请求-应答模式 是⼀对⼀ 、不可有消息丢失 、其他都没有对消息丢失做强烈的保证、官⽅给出的观点:我们希望消息的尽快送达、⽽不介意消息的丢失
ZeroMQ只是⼀个⽹络编程的Pattern库,将常见的⽹络请求形式(分组管理,链接管理,发布订阅等)模式化、组件化,简⽽⾔
之socket之上、MQ之下。对于MQ来说,⽹络传输只是它的⼀部分,更多需要处理的是消息存储、路由、Broker服务发现和查找、事务、消费模式(ack、重投等)、集群服务等。
ZeroMQ(∅MQ),你们看这名字,说的是没有mq,还⾮说它是mq,这动点脑⼦好么。zmq是⽀持fanout、topic这些功能的⾼级
socket,不再是传统socket的点到点通信了,于是乎似乎有了mq语义。但是,mq作为⼀个服务,重要意义是解耦系统中的不同服务,然⽽zmq不是⼀个独⽴服务进程,⾃然没有mq这种在中间解耦的能⼒。
ZeroMQ 和 RabbitMQ/Kafka 不同,它只是⼀个异步消息库,在套接字的基础上提供了类似于消息代理的机制。使⽤ ZeroMQ 的话,需要对⾃⼰的业务代码进⾏改造,不利于服务解耦。
ZeroMQ是⼀个⾮常轻量级的消息系统,专门为⾼吞吐量/低延迟的场景开发,在⾦融界的应⽤中经常可以发现它。与RabbitMQ相
⽐,ZeroMQ⽀持许多⾼级消息场景,但是你必须实现ZeroMQ框架中的各个块(⽐如Socket或Device等)。ZeroMQ⾮常灵活,但是你必须学习它的80页的⼿册(如果你要写⼀个分布式系统,⼀定要阅读它)。
四⼤模型以及很多改进模型有固定的⼀些匹配的socket对
重要参考:
获取sample
作者推出的新模型
五十英文性能分析
发布订阅模式
推拉模式
请求回应模式
消息结构体
MetaQ
放肆反义词
是⼀款完全的队列模型,服务器使⽤编写,可在多种软硬件平台上部署。客户端⽀持Java、。单台服务器可⽀持1万以上个,通过扩容服务器,队列数⼏乎可任意横向扩展。每个队列都是、长度⽆限(取决于磁盘空间⼤⼩)、并且可从队列任意位置开始消费
Solace、Tibco RV, Tibco EMS,29West
这些是量化交易⾥⾯⽤到的
如果共享内存的话会⽤memory mapped file像chronicle
对⽐
ActiveMQ Apollo HornetQ Qpid RabbitMQ ZeroQ
C--
C++---
Erlang----
Haskell----
Java JMS--
Java
--proprietary
---
Objective-
-----C
Perl----
PHP----
Python---护颈
Ruby---
睡前小故事大全其他
钉的多音字组词消息中间件的⼀些理解

本文发布于:2023-08-03 05:43:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1106229.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   队列   服务
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图