JStorm源码分析
文章平均质量分 80
EdgarLeo
随心而动,循梦而行
展开
-
JStorm源码分析(二)JStorm中的基本数据结构—— Fields,Values&Tuples(草稿|无图版)
描述某一行值——Values 毫无疑问,存储在数据流中的值字段是绝大多数业务逻辑关注的重点,包含着实实在在的信息。然而,越庞大越重要的事物往往越简洁越直观。体现在JStorm使用Values类来描述要在数据流中的“一行”值,而Values类的实现非常简单: public class Values extends ArrayList Values类直接继承自Java中的ArrayList原创 2017-03-22 18:42:56 · 1862 阅读 · 0 评论 -
JStorm源码分析小贴士(一)进一步了解 AsyncLoopThread(草稿)
在 Worker 的源代码中,我们发现有很多地方出现了 AsyncLoopThread ,下面我们来简单解读一下这个类的源码,并阐述该类的作用。 (一)继承体系 SmartThread 这个接口比较简单,仅仅定义了“灵活线程”所必须实现的方法,如下所示: public interface SmartThread { public void start(); p原创 2017-03-22 14:46:08 · 1092 阅读 · 0 评论 -
JStorm源码分析(一)Worker核心源码分析(草稿|无代码|无图版)
(一)属性分析 Worker 类下只有一个属性—— WorkerData ,封装了所有与 Worker 有关的属性,下面列表分类阐述这些属性的作用: 组 组的作用 变量名 类型 变量的作用 线程池 线程池 threadPool ScheduledExecutorService原创 2017-03-22 11:32:16 · 1762 阅读 · 0 评论 -
JStorm源码分析(四)深入解读Task概念与实现(草稿版)
由于Task实现了Runnable接口,所以可以肯定的是,Task将会由某个线程来执行其run()方法,这其中包含的核心逻辑如下: public void run() { try { taskShutdownDameon = this.execute(); } catch (Throwable e) { LOG.er原创 2017-03-24 10:17:33 · 1242 阅读 · 0 评论 -
JStorm源码分析(三)流计算的执行者——SpoutExecutors/BoltExecutors(草稿|无图版)
导引 但凡写过几个流处理应用的开发者,想必对Storm和JStorm中的源节点(Spout)和计算节点(Bolt)已经很熟悉了。我们只需要继承BaseRichSpout和BaseRichBolt或者与之类似的抽象类或接口即可,用具体的业务逻辑填充其中的prepare(), nextTuple(), execute()等方法,然后把这些节点组合成计算拓扑(Topology)交给Storm或JS原创 2017-03-23 16:04:49 · 1321 阅读 · 0 评论