`
chris.hsu
  • 浏览: 8298 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
sqy
社区版块
存档分类
最新评论
文章列表
欢迎转载,转载请注明出处,徽沪一郎。 TridentTopology是storm提供的高层使用接口,常见的一些SQL中的操作在tridenttopology提供的api中都有类似的影射。关于TridentTopology的使用及运行原理,当前进行详细分析的文章不多。 从TridentTopology到vanilla topology(普通的topology)由三个层次组成: 面向最终用户的概念stream, operation 利用planner将tridenttopology转换成vanilla topology 执行vanilla topology 本文尝试Trident ...
欢迎转载,转载请注明出处,徽沪一郎。 本文详细分析TridentTopology的可靠性实现, TridentTopology通过transactional spout与transactional state相结合,能够做到tuple“只被处理一次,不多也不少”。也就是做到事务性处理exactly-once,要么成功,要么失败。 而一般的storm topology是无法保证eactly-once的处理的,它们要么是at-least-once(至少被处理一次,有可能被处理多次);要么是at-most-once(最多被处理一次,这样就存在遗漏的可能). TridentTopology在设 ...
欢迎转载,转载请注明出处,徽沪一郎。 从用户层面来看TridentTopology,有两个重要的概念一是Stream,另一个是作用于Stream上的各种Operation。在实现层面来看,无论是stream,还是后续的operation都会转变成为各个Node,这些Node之间的关系通过重要的数据结构图来维护。具体到TridentTopology,实现图的各种操作的组件是jgrapht。 说到图,两个基本的概念会闪现出来,一是结点,二是描述结点之间关系的边。要想很好的理解TridentTopology就需要紧盯图中结点和边的变化。 TridentTopology在转换成为普通的Stor ...
欢迎转载,转载请注明出处,徽沪一郎。 本文从外部消息在worker进程内部的转化,传递及处理过程入手,一步步分析在worker-data中的数据项存在的原因和意义。试图从代码实现的角度来回答,如果是从头开始实现worker的话,该 ...
欢迎转载,转载请注明出版,徽沪一郎。 本文重点分析storm的worker进程在正常启动之后有哪些类型的线程,针对每种类型的线程,剖析其用途及消息的接收与发送流程。 概述 worker进程启动过程中最重要的两个函数是mk-worker和worker-data,代码就不一一列出了。worker顺利启动之后会拥有如下图所示的各类线程。   接收和发送线程 worker在启动的时候会生成进程级别的消息接收和消息发送线程,它们视具体配置而定,可以是基于zmq,也可以基于netty,这个没有太多好说的。socket connection的建立过程可以在tuple消息传递一文中找到说明。 ...
概要 storm cluster可以想像成为一个工厂,nimbus主要负责从外部接收订单和任务分配。除了从外部接单,nimbus还要将这些外部订单转换成为内部工作分配,这个时候nimbus充当了调度室的角色。supervisor作为中层干部,职责就是生产 ...
欢迎转载,转载请注明出处源自徽沪一郎。本文尝试分析tuple发送时的具体细节,本博的另一篇文章《bolt消息传递路径之源码解读》主要从消息接收方面来阐述问题,两篇文章互为补充。 worker进程内消息接收与处理全景图 先上幅图简要勾勒出worker进程接收到tuple消息之后的处理全过程 IConnection的建立与使用 话说在mk-threads :bolt函数的实现中有这么一段代码,其主要功能是实现tuple的emit功能 bolt-emit (fn [stream anchors values task] (let [out-tasks (if t ...
欢迎转载,转载时请注明作者徽沪一郎及出处,谢谢。 本文详细介绍了twitter storm中的nimbus节点的启动场景,分析nimbus是如何一步步实现定义于storm.thrift中的service,以及如何利用curator来和zookeeper server建立通讯。 对于storm client来说,nimbus是storm cluster与外部的唯一接口,是总的接口人,在这个接口上使用thrift定义的各种service。但是nimbus光接单并不干活,具体的脏活累活,这哥们都是分配到各个slots上的,让nimbus来具体管理各个slots也就是worker,似乎还是太累了, ...
        jQuery 1.9变化有几点,最重要的是标题所提到的browser,live,die,sub,toggle这几个,如果你在使用过程中遇到高级版本不行,而低版本却可以的时候,那你就要了解一下是不是版本升级带来的影响了。之前也转载过一篇“jQue ...
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![endif]--> <!--[if IE 5.0]> 只有IE5.0可以识别 <![endif]--> <!--[if IE 5]> 仅IE5.0与IE5.5可以识别 <![endif]--> <!--[if gt IE 5.0]&g ...

LDAP

        LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。        简单的说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。 LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址被使用,不过根据组织者的需要, ...
jBPM-jPDL学习笔记—框架设计简介(四) 关键字: jbpm jpdl xml元素   上接 jBPM-jPDL学习笔记—框架设计简介(三) <common node elements>(通用结点元素) 名称 类型
jBPM-jPDL学习笔记—框架设计简介(三) 关键字: jbpm jpdl 元素定义   上接 jBPM-jPDL学习笔记—框架设计简介(二) 编号 PD-006 对象
jBPM-jPDL学习笔记—框架设计简介(二) 关键字: jbpm jpdl 工作流   ...上接 jBPM-jPDL学习笔记—框架设计简介(一)   jPDL业务流程模型   理解现实生活中的业务流程 下面我们通过一个简单的部门借款流程来了解现实中的业务流程 ...
jBPM-jPDL学习笔记—框架设计简介(一) 关键字: jbpm jpdl 框架设计 工作流 相关资料:   《jBPM学习笔记(V3.2环境部署)》 《jBPM学习笔记(流程设计与控制)》   概述:
Global site tag (gtag.js) - Google Analytics