Jstorm最佳实践

简介: Jstorm最佳实践
  • 在拓扑提交过程中,不能实例化没有实现序列化接口的对象。可以通过传递参数的方式,在bolt的prepare中实例化
  • 推荐一个worker运行2个task
  • 减少拓扑层数,随着拓扑层数的增加,系统吞吐率下降,同时CPU利用率一直在上升,网络带宽未达到极限;
  • 最好设置topology.max.spout.pending,这样可以避免长时间的响应,以及抖动。设置topology.max.spout.pending=5000;可以根据系统性能增减
  • 在jstorm中, spout中nextTuple和ack/fail运行在不同的线程中, 从而鼓励用户在nextTuple里面执行block的操作, 原生的storm,nextTuple和ack/fail在同一个线程,不允许nextTuple/ack/fail执行任何block的操作,否则就会出现数据超时,但带来的问题是,当没有数据时, 整个spout就不停的在空跑,极大的浪费了cpu, 因此,jstorm更改了storm的spout设计,鼓励用户block操作(比如从队列中take消息),从而节省cpu。
  • 在架构上,推荐 “消息中间件 + jstorm + 外部存储” 3架马车式架构

1.JStorm从消息中间件中取出数据,计算出结果,存储到外部存储
2.通常消息中间件推荐使用RocketMQ,Kafka,外部存储推荐使用HBase,Mysql
3.该架构,非常方便JStorm程序进行重启(如因为增加业务升级程序)
4.职责清晰化,减少和外部系统的交互,JStorm将计算结果存储到外部存储后,用户的查询就无需访问JStorm中服务进程,查询外部存储即可。

  • 在实际计算中,常常发现需要做数据订正,因此在设计整个项目时,需要考虑重跑功能

1.在kafka等队列中,数据最好带时间戳
2.如果计算结果入hadoop或数据库,最好结果也含有时间戳

  • 如果使用trasaction时,增加kafka/meta时, brokerId要按顺序,即新增机器brokerId要比之前的都要大,这样reassign spout消费brokerId时就不会发生错位。
  • 非事务环境中,尽量使用IBasicBolt
  • 计算并发度时,spout 按单task每秒500的QPS计算并发
    全内存操作的task,按单task 每秒2000个QPS计算并发

有向外部输出结果的task,按外部系统承受能力进行计算并发。

  • 对于MetaQ 和 Kafka,拉取的频率不要太小,低于100ms时,容易造成MetaQ/Kafka 空转次数偏多,一次获取数据Block大小推荐是2M或1M,太大内存GC压力比较大,太小效率比较低。
  • 条件允许时,尽量让程序可以报警,比如某种特殊情况出现时,比如截止到凌晨2点,数据还没有同步到hadoop,发送报警出来
  • 从jstorm 0.9.5.1 开始, 底层netty同时支持同步模式和异步模式,

1.异步模式, 性能更好, 但容易造成spout 出现fail, 适合在无acker模式下,storm.messaging.netty.sync.mode: false
2.同步模式, 底层是接收端收一条消息,才能发送一条消息, 适合在有acker模式下,storm.messaging.netty.sync.mode: true

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

相关文章
|
SQL 测试技术 数据库
什么是单元测试?为什么要做?
什么是UT? UT(Unit Test)即单元测试
643 0
什么是单元测试?为什么要做?
|
4天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
3913 8
|
15天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11583 131
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
3天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
1399 5
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
15天前
|
人工智能 IDE API
2026年国内 Codex 安装教程和使用教程:GPT-5.4 完整指南
Codex已进化为AI编程智能体,不仅能补全代码,更能理解项目、自动重构、执行任务。本文详解国内安装、GPT-5.4接入、cc-switch中转配置及实战开发流程,助你从零掌握“描述需求→AI实现”的新一代工程范式。(239字)
7878 139
|
5天前
|
人工智能 自然语言处理 数据挖掘
零基础30分钟搞定 Claude Code,这一步90%的人直接跳过了
本文直击Claude Code使用痛点,提供零基础30分钟上手指南:强调必须配置“工作上下文”(about-me.md+anti-ai-style.md)、采用Cowork/Code模式、建立标准文件结构、用提问式提示词驱动AI理解→规划→执行。附可复制模板与真实项目启动法,助你将Claude从聊天工具升级为高效执行系统。
|
4天前
|
人工智能 定位技术
Claude Code源码泄露:8大隐藏功能曝光
2026年3月,Anthropic因配置失误致Claude Code超51万行源码泄露,意外促成“被动开源”。代码中藏有8大未发布功能,揭示其向“超级智能体”演进的完整蓝图,引发AI编程领域震动。(239字)
2280 9
|
4天前
|
云安全 供应链 安全
Axios投毒事件:阿里云安全复盘分析与关键防护建议
阿里云云安全中心和云防火墙第一时间响应
1176 0

热门文章

最新文章