1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Rocket介绍:发展历史大约经历了三个主要版本迭代Metaq 1.x :开源社区killme2008维护,开源社区非常活跃Metaq 2.x :于2012年10月份在淘宝内部上线,并广泛使用RocketMq3.x:阿里内部对其核心功能的简化。并衍生出多个消息服务项目。运用到阿里的支付、订单、充值等多个业务领域。MQ对比ActiveMQRabbitMQRocketMQ关注度高高中成熟度成熟成熟比较成熟社区ApacheMozilla开源社区Alibaba社区活跃度高高中文档多多少特点功能齐全,被大量使用由于Erlang语言的并发能力,使得性能很好各个环节分布式扩展设计,主从高可用群集;支持上万个队列;多种消费模式;性能很好开源开源开源开源语言JavaErlang(面向并发编程语言)JavaClient语言支持Java支持Java支持Java支持协议OpenWire、STOMP、REST、XMPP、AMQPAMQP自定义的一套,提供了支持JMS客户端的API持久化内存,文件,数据库内存,文件磁盘文件事务支持不支持支持集群和负载均衡支持支持支持管理页面一般好无部署方式独立,嵌入独立独立评价优点:成熟的产品,已经在很多公司得到应用(非大规模场景)。有较多的文档。各种协议支持较好,有多重语言的成熟的客户端;缺点:根据其他用户反馈,会出莫名其妙的问题,并且会丢消息。其重心放到activemq6.0产品—apollo上去了,目前社区不活跃,且对5.x维护较少;?Activemq?不适合用于上千个队列的应用场景优点:由于erlang语言的特性,mq性能较好;管理界面较丰富,在互联网公司也有较大规模的应用;支持amqp协议,有多中语言且支持?amqp?的客?户端可用。缺点:erlang语言难度较大。优点:模型简单,接口易用。在阿里大规模应用。目前支付宝中的余额宝等新兴产品均使用rocketmq。集群规模大概在50台左右,单日处理消息上百亿;性能非常好,可以大量堆积消息在?broker?中;支持多种消费,包括集群消费、广播消费等。开发度较活跃,版本?更新很快。缺点:产品较新,文档比较缺乏。没有在?mq?核心中去实现?JMS?等接口,对?已有系统而言不能兼容。RocketMQ与Kafka对比Kafka无限消息堆积,高效的持久化速度,主要用于日志传输。RocketMQ广泛应用订单、交易、充值、消息推送、日志传输场景。RocketMQKafka数据可靠性支持异步实时刷盘,同步刷盘,同步主从复制和异步主从复制异步刷盘方式和异步主从复制总结总结:RocketMQ的同步刷盘在单机可靠性上比Kafka更高,不会因为操作系统崩溃,导致数据丢失。同时同步Replication也比Kafka异步Replication更可靠,数据完全无单点。另外Kafka的Replication以topic为单位,支持主机宕机,备机自动切换,但是这里有个问题,由于是异步Replication,那么切换后会有数据丢失,同时宕机的机器如果重启后,会与已经存在的主机器产生数据冲突(?)。开源版本的RocketMQ不支持Master宕机,Slave自动切换为Master,/product/ons阿里云版本的RocketMQ支持自动切换特性性能RocketMQ单机写入TPS单实例约7万条/秒,单机部署3个Broker,可以跑到最高12万条/秒,消息大小10个字节/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machinesKafka单机写入TPS约在百万条/秒,消息大小10个字节总结Kafka的TPS跑到单机百万,主要是由于生产者端将多个小消息合并,批量发向Broker。RocketMQ为什么没有这么做?生产者通常使用Java语言,缓存过多消息,GC是个很严重的问题生产者调用发送消息接口,消息未发送到Broker,向业务返回成功,此时生产者宕机,会导致消息丢失,业务出错生产者通常为分布式系统,且每台机器都是多线程发送,我们认为线上的系统单个生产者每秒产生的数据量有限,不可能上万。缓存的功能完全可以由上层业务完成。单机支持队列数RocketMQ单机支持最高5万个队列,Load不会发生明显变化Kafka单机超过64个队列/分区,Load会发生明显的飙高现象,队列越多,load越高,发送消息响应时间变长消息投递实时性RocketMQ使用长轮询,同Push方式实时性一致,消息的投递延时通常在几个毫秒。Kafka使用短轮询方式,实时性取决于轮询间隔时间消息失败重试RocketMQ消费失败支持定时重试,每次重试间隔时间顺延Kafka消费失败不支持重试总结例如充值类应用,当前时刻调用运营商网关,充值失败,可能是对方压

文档评论(0)

tiangou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档