Jstorm vs Storm

简介: Jstorm 是由Storm演化而来,在架构和实现上都有很大的相似度,并且沿用了Storm的编程接口,Storm的程序在很多版本上,可以无缝迁移到Jstorm。整体上说,Jstorm更稳定,灵活性更高,性能更高。

Jstorm 是由Storm演化而来,在架构和实现上都有很大的相似度,并且沿用了Storm的编程接口,Storm的程序在很多版本上,可以无缝迁移到Jstorm。整体上说,Jstorm更稳定,灵活性更高,性能更高。

  • Jstorm Nimbus 实现HA
    当一台nimbus挂了,自动热切到备份nimbus
  • 彻底解决Storm雪崩问题
    底层RPC 采用netty + disruptor,保证发送速度和接受速度是匹配的
  • rebalance
    Storm采取的策略更自动化,可能会影响稳定性。而Jstorm则采取更稳定的策略,在下面的情况发生时,都不会rebalance,可以手动relanbance
1. 添加supervisor时, 会触发任务rebalance
 2. Supervisor shutdown时, 触发任务rebalance
 3. 提交新任务时,当worker数不够时,触发其他任务做rebalance
  • Jstorm调度策略更稳定
    当新拓扑提交时,Jstorm不会去抢占老任务占用的资源cpu,memory,disk,net。
  • Jstorm减少对ZK的访问量
    去掉大量无用的watch,task的心跳时间延长一倍,Task心跳检测无需全ZK扫描
  • Jstorm调度更强大
    可以从4个维度对任务进行资源分配,CPU,Memory,Disk,Net。需要开启Cgroups,具体http://blog.csdn.net/zengqiang1/article/details/78451307
  • Jstorm默认一个task,一个cpu slot,当task消耗更多的cpu时,可以申请更多cpu slot
  • Jstorm 默认task,不申请disk slot,当task 磁盘IO较重时,可以申请disk slot
  • Jstorm可以强制某个component的task 运行在不同的节点上
  • Jstorm 可以强制topology运行在单独一个节点上
  • Jstorm可以自定义任务分配
    提前预约任务分配到哪台机器上,哪个端口,多少个cpu slot,多少内存,是否申请磁盘
  • JstormWorker 内部全流水线模式,Spout nextTuple和ack/fail运行在不同线程
    nextTuple中 做sleep和wait操作不会block ack/fail 动作
  • Jstorm底层使用ZeroMq, 比storm快30%
  • Jstorm底层使用netty时, 和storm快10%,并且稳定非常多

Jstorm 为什么性能更好

  • Zeromq 减少一次内存拷贝
  • 增加反序列化线程
  • 重写采样代码,大幅减少采样影响
  • 优化ack代码
  • 优化缓冲map性能
  • Java 比clojure更底层

作者:glowd
原文:https://blog.csdn.net/zengqiang1/article/details/78448694
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章
|
1月前
|
SQL 存储 监控
Storm
作者王刚和刘首维在2019年前使用Storm处理阿里巴巴之家的实时业务,但随着需求增加和数据规模扩大,Storm的开发与维护成本上升。他们面临SQL翻译和过度依赖外部存储(如Redis)的问题。为解决这些问题,团队在2019年初开始转向Flink引擎,Flink的SQL支持和内置状态管理吸引他们。新平台以Flink SQL为基础,服务于多个部门,支持5000亿条日计算量,涵盖实时数仓、推荐、日志分析等场景,最高QPS达200万。平台优势在于低成本开发、高性能、低维护和数据资产管理。架构包含表管理、任务配置、权限管理、UDF管理等,并计划与仓库和业务方合作,丰富功能,迁移至K8s,以及引入Flink 1.9版本。Flink Forward Asia 2019活动将深入讨论大数据技术与开源生态。
|
5月前
|
jstorm 分布式计算 搜索推荐
JStorm使用总结
JStorm使用总结
40 0
|
5月前
|
存储 消息中间件 分布式计算
104 Storm介绍
104 Storm介绍
16 0
|
存储 监控 安全
storm笔记:storm集群
Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定(还有一种主从结构是在运行时动态选举,比如zookeeper)。通常这种主从结构存在出现单点故障的风险,Storm通过特殊处理规避这种风险,后面将解释Storm的半容错结构。
338 0
storm笔记:storm集群
|
消息中间件 JSON 自然语言处理
storm笔记:Storm+Kafka简单应用
通过本文记录一下这种情况,后文中根据上述场景提供几个简单的例子。因为是初学storm、kafka,基础理论查看storm笔记:storm基本概念,,或查看Storm 简介。
130 0
|
调度
Jstorm调度规则
Jstorm调度规则
537 0
Storm BaseBasicBolt和BaseRichBolt
Storm BaseBasicBolt和BaseRichBolt
801 0
|
jstorm 分布式计算 Java
|
分布式计算 Java Hadoop

热门文章

最新文章