3d万能五码组三
新闻动态
技术中心
技术中心
当前位置:科达自控 >> 服务支持 >> 技术中心 >> 浏览文章
常用消息队列学习对比
作者:研发部 日期:2019年02月12日 来源:本站原创 浏览:

内容?#32423;粒?/b>消息队列报告常用消息队列    当前主流使用的消息队列包括以下几种:RabbitMQ,ActiveMQ,Kafka,ZeroMQ,将会从以下几个方面对这几种消息队列进行对比。    1、消息队列运行性能    2、消息队列是否可以持久化到数据库

点击浏览下一页

消息队列报告
常用消息队列
    当前主流使用的消息队列包括以下几种:RabbitMQ,ActiveMQ,Kafka,ZeroMQ,将会从以下几个方面对这几种消息队列进行对比。
    1、消息队列运行性能
    2、消息队列是否可以持久化到数据库中
    3、消息队列安装管理调试维护是否容?#36164;?#29616;
    4、消息队列支持开发的语言和跨平台性
    5、消息队列网上资料
    6、消息传递的可靠性
常用消息队列简介
    RabbitMQ简介
    RabbitMQ是由Erlang语?#21592;?#20889;的实现了高级消息队列协议(AMQP)的开源消息代理软件(也可称为 面向消息的中间件)。它支持消息持久化到数据库,支持集群处理和负载均衡,虽然不支持动态扩容,但是扩展集群比?#20808;?#26131;。是当前最流行的消息队?#23567;?br />    ActiveMQ简介
    ActiveMQ是由Apache出品,ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。它非常快速,支持多种语言的客户端和协议,而且可以非常容易的嵌入到企业的应用环境中,并?#34892;?#22810;高级功能。它支持OpenWire、STOMP、REST、AMQP协议,支持持久化、负载均衡,集群等功能。


    Kafka简介
    Kafka是一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka是一种快速、可扩展的、设计内在就是分布式的,?#26234;?#30340;和可复制的提交日志服务。它支持仿AMQP协议,支持事务处理?#22270;?#32676;,支持动态扩容。
    ZeroMQ简介
    ZMQ是一个简单好用的传输层,像框架一样的socket library.它是一个消息处理队?#23567;?#19982;RabbitMQ相比,ZMQ并不像一个传统意义?#31995;?#28040;息服务器,更像是一个底层的网络通讯库,在socket API之上做了一层封装,将网络通讯,进程通讯和线程通讯抽象成统一的API接口。此消息队列不支持持久化到数据库,如果需要得自己手动编写持久化代码
    从社区活跃度
    按照目前网络?#31995;?#36164;料,RabbitMQ 、activeM 、ZeroMQ 三者中,综合来看,RabbitMQ 是首选。
    持久化消息比较
    ZeroMq 不支持,ActiveMq 和RabbitMq 都支持。持久化消息主要是指我们机器在不可抗力因素等情况下宕机了,消息不会丢失的机制。
    综合技术实现
    可靠性、灵活的路由、集群、事务、高可用的队?#23567;?#28040;息排序、问题追踪、可视化管理工具、插件系统等等。
    RabbitMq / Kafka 最好,ActiveMq 次之,ZeroMq 最差。?#27604;籞eroMq 也可以做到,?#36824;?#33258;己必须手动写代码实现,代码量不小。尤其是可靠性中的:持久性、投递确认、发布者证实和高可用性。
    高并发
    毋庸置疑,RabbitMQ 最高,原因是它的实现语言是天生具备高并发高可用的erlang 语言。
    比较关注的比较, RabbitMQ 和 Kafka
    RabbitMq 比Kafka 成熟,在可用性上,稳定性上,可靠性上, RabbitMq 胜于 Kafka (理论上)。RabbitMQ使用ProtoBuf序列化消息。极大的方便了Consumer的数据高效处理,与XML相比,ProtoBuf有以下优势:
    1.简单
    2.size小了3-10倍
    3.速度快了20-100倍
    4.?#23376;?#32534;程
    5.减少了语义的歧义。
    ProtoBuf具?#20852;?#24230;和空间的优势,使得它现在应用非常广泛。
    另外,Kafka 的定位主要在日志等方面, 因为Kafka 设计的初衷就是处理日志的,可以看做是一个日志(消息)系统一个重要组件,针对性很强,所以 如果业务方面还是建议选择 RabbitMq 。
    还有就是,Kafka 的性能(吞吐量、TPS )比RabbitMq 要高出来很多。
    最后比较:
    从各个方面考虑,现在开源消息队列主要从RabbitMQ和Kafka这两种中选择。但是两种各有自己的特点。Kafka更侧重日志的传输。RabbitMQ有丰富的消息队列使用模型,开发?#35759;?#20302;,对windows有比较好的支持。
    根据公司项目要求,建议使用RabbitMQ消息队?#23567;?/p>

 

上一篇文章:MOS管应用概述:等效模型 下一篇文章:热处理?#23588;热?#38519;及控制
相关链接
发表评论
用户评论
版权所有 山西科达自控股份有限公司 晋ICP备09004627号    晋公网安备 14019202000008号     
官方微信
新浪官方微博
腾讯官方微博
3d万能五码组三 斗地主提现网址 黄金岛棋牌游戏送现金 什邡中彩票 腾讯分分彩计划有哪些 内蒙古十一选五规律 欢乐斗地主现金版 极速快3官网下载 零点棋牌手机版本 p图中彩票 吉林十一选五官网