storm优化topology思路

来源:互联网 发布:零基础学seo 编辑:程序博客网 时间:2024/05/16 19:11
  1.  细分spout/bolt。使其更贴近分布式,对不同的component灵活分配资源。

  2. 对于grouping,尽量采用localgrouping,减少网络传输。localgrouping可以实现数据尽量在进程内传输,降低网络带来的开销。

  3. spout端优化,假如在topology中,处理瓶颈在spout端,而且你又不能增加spout的数量,可以试试修改spoutWaitStrategy,默认waitstrategy是sleep(1ms),如果嫌这个也慢,不妨试试yield(),当然会带来一定的cpu压力。

  4. 让spout nextTuple尽量简单,没有阻塞,没有处理逻辑,直接取数据emit。

  5. 找出各个componet的process cost,例如bolt中业务逻辑处理时间看有无优化空间,减少bolt的execute latency。

  6. 根据sotrm UI的exucute latency,spout->bolt1->bolt2,各个component的处理延迟时间,来分配各个的task数比例。

  7. 针对特定的资源,找出瓶颈所在,比如IO,CPU等,考虑增加worker中线程池数,即task/worker。

0 0
原创粉丝点击