博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么是RocketMQ(翻译)
阅读量:6325 次
发布时间:2019-06-22

本文共 1160 字,大约阅读时间需要 3 分钟。

动机

在早期阶段,我们构建分布式中间件基于ActiveMQ 5.x(早于 5.3)。我们的国际业务将其用于异步通信,搜索,社交网络活动流,数据管道,甚至在其交易流程中。随着我们的交易业务吞吐量增加,源自我们的消息集群的压力也变得迫切。

为什么是RocketMQ

基于我们的研究,随着使用的队列和虚拟主题的增加,ActiveMQ IO 模块成为了瓶颈。 我们尽力通过节流,断路器或降级解决这个问题,但效果不佳。因此我们开始关注那时候比较流行的消息解决方案kafka。不幸的是,就低延迟和高可用方面而言,kafka不能解决我们的特殊需求,详情。

在这种情况下,我们决定创造一个新的消息引擎来解决更广泛的使用场景,从传统的发布/订阅情景到大容量的实时零容错零容忍事物系统。我们认为这个解决方案可能是有益的,因此我们希望将它向社区开源。目前,有超过100家公司在生产环境中使用开源的RocketMQ版本。我们还发布了基于RocketMQ的商业发行版,一种被称为阿里云平台的paas产品。

下面的表格展示RocketMQ,ActiveMQ 和Kafka (来自的流行消息解决方案)之间的对比

Rocket ,ActiveMQ ,kafka比较

消息产品 ActiveMQ Kafka RocketMQ
客户端SDK Java, .NET, C++ 等 Java, Scala 等 Java, C++, Go
协议和规范 push模式,支持OpenWire, STOMP, AMQP, MQTT, JMS pull模式,支持TCP pull模式,支持TCP,JMS,OpenMessaging
有序消息 独有消费者或队列可保证顺序 分区内保证消息顺序 保证严格的消息顺序,可优雅的横向扩展
定时消息 支持 不支持 支持
批量消息 不支持 支持,通过异步发送者 支持,通过同步模式避免消息丢失
广播消息 支持 不支持 支持
消息过滤器 支持 支持,可通过streams来过滤消息 支持,基于SqL92的属性过滤器表达式
服务器触发重发 不支持 不支持 支持
消息存储 支持快速持久化jdbc和高性能日志文件,例如levelDB,kahaDB 高性能文件存储 高性能低延迟文件存储
消息回溯 支持 支持偏移量 支持时间偏移量
消息优先级 支持 不支持 支持
高可用故障转移 支持,依赖存储,kahadb需zookeeper 支持,需要zookeeper 支持,主从模式,不需其他组件
消息追踪 不支持 不支持 支持
配置 默认配置是低级别的,用户需优化配置参数 kafka使用格式化键值对配置。值可通过文件或编程提供 开箱即用,用户只需关注一部分配置
管理和操纵工具 支持 支持,使用命令行暴露核心指标 支持,web和命令行暴露核心指标

转载地址:http://gmmaa.baihongyu.com/

你可能感兴趣的文章
Android开发之蓝牙操作
查看>>
前后端分离的思考与实践(四)
查看>>
获取网卡IP地址命令
查看>>
Java反射机制详解上篇
查看>>
对BBS中一个问题的解答
查看>>
Linux系统基础调优
查看>>
Chrome源码剖析 【序】 && 【一】
查看>>
Redis 3.0 新特性,支持redis 集群
查看>>
mysql主从
查看>>
PHP转换emoji表情为HTML字符实体
查看>>
exchange 2016 辅助角色
查看>>
SQLServer 延迟事务持久性
查看>>
atomikos 创建数据源,报Max number of active transactions
查看>>
关于mount在unix系统上
查看>>
Linux CentOS 硬盘分区、格式化、挂载与卸载
查看>>
Configuration Manager 内置报表列表04
查看>>
linux logrotate 配置
查看>>
在Linux下如何查CC攻击?
查看>>
Android待调研基础知识
查看>>
白领"刷脸族"串红 人脸识别产品热销
查看>>