storm的设计思想
storm的设计思想
在 Storm 中也有对流(Stream)的抽象,流是一个不间断的、无界的连续 Tuple(Storm在建模事件流时,把流中的事件抽象为 Tuple 即元组)。Storm 认为每个流都有一个 Stream 源,也就是原始元组的源头,所以它将这个源头抽象为 Spout, Spout 可能连接 Twitter API 并不断发出推文( Tweet),也可能从某个队列中不断读取队列元素并装配为 Tuple 发射。
有了源头即 Spout 也就是有了流,同样的思想, Twitter 将流的中间状态转换抽象为Bolt, Bolt 可以消费任意数量的输入流,只要将流方向导向该 Bolt,同时它也可以发送新的流给其他 Bolt 使用,这样一来,只要打开特定的 Spout(管口),再将 Spout 中流出的 Tuple导向特定的 Bolt,由 Bolt 处理导入的流后再导向其他 Bolt 或者目的地。
假设 Spout 就是一个一个的水龙头,并且每个水龙头里流出的水是不同的,想获得哪种水就拧开哪个水龙头,然后使用管道将水龙头的水导向到一个水处理器(Bolt),水处理器处理后使用管道导向另一个处理器或者存入容器中。图 1-8 和图 1-9 为 Spout、 Tuple 和 Bolt 之间的关系和流程。
图 1-8 Spout、 Bolt 顺序处理数据流图

图 1-9 Bolt 多输入数据流图
为了增大水处理效率,可以在同一个水源处接上多个水龙头并使用多个水处理器,如图 1-10 所示。
图 1-10 多 Spout、多 Bolt 处理流程图
对应上文的介绍,可以很容易地理解图 1-10,这是一张有向无环图。 Storm 将这个图抽象为 Topology(即拓扑),拓扑是 Storm 中最高层次的一个抽象概念,提交拓扑到 Storm 集群执行,一个拓扑就是一个流转换图。图中的每个节点是一个 Spout 或者 Bolt,图中的边是指Bolt 订阅了哪些流。
storm的设计思想的更多相关文章
- Storm概念学习系列之storm的设计思想
不多说,直接上干货! storm的设计思想 在 Storm 中也有对流(Stream)的抽象,流是一个不间断的.无界的连续 Tuple(Storm在建模事件流时,把流中的事件抽象为 Tuple 即元组 ...
- Kakfa的设计思想
Kafka Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实 ...
- Kafka详解四:Kafka的设计思想、理念
问题导读 1.Kafka的设计基本思想是什么?2.Kafka消息转运过程中是如何确保消息的可靠性的? 本节主要从整体角度介绍Kafka的设计思想,其中的每个理念都可以深入研究,以后我可能会发专题文章做 ...
- kafka具体解释四:Kafka的设计思想、理念
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/suifeng3051/article/details/37606001 本节主要从总体角度 ...
- 使用Unity3D的设计思想实现一个简单的C#赛车游戏场景
最近看了看一个C#游戏开发的公开课,在该公开课中使用面向对象思想与Unity3D游戏开发思想结合的方式,对一个简单的赛车游戏场景进行了实现.原本在C#中很方便地就可以完成的一个小场景,使用Unity3 ...
- spring事务管理器设计思想(二)
上文见<spring事务管理器设计思想(一)> 对于第二个问题,涉及到事务的传播级别,定义如下: PROPAGATION_REQUIRED-- 如果当前没有事务,就新建一个事务.这是最常见 ...
- 掌握 Cinder 的设计思想 - 每天5分钟玩转 OpenStack(46)
上一节介绍了 Cinder 的架构,这节讨论 Cinder 个组件如何协同工作及其设计思想. 从 volume 创建流程看 cinder-* 子服务如何协同工作 对于 Cinder 学习来说,Volu ...
- javascript继承机制的设计思想(ryf)
我一直很难理解Javascript语言的继承机制. 它没有"子类"和"父类"的概念,也没有"类"(class)和"实例" ...
- 09A-独立按键消抖实验01——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线--普利斯队长精心奉献 实验目的: 1.复习状态机的设计思想并以此为基础实现按键消抖 2.单bit异步信号同步化以及边沿检测 3.在激励文件中学会使用随机数发生函数$random 4.仿真模 ...
随机推荐
- C和BlockCode
在使用code block的时候,需要先build,然后再run,否则run的还是上次编译的内容.
- 【web安全】第六弹:手工SQL注入详解
前一段时间,在对SQL注入有了新的理解之后,写了这篇文章.本来准备投稿,因为内容过于基础被打回来了,想想屯着也没意思,发出来发出来~~本来有好多图的,但是博客园发图很麻烦,word文档的链接会贴在文章 ...
- CODEVS 3286 火柴排队
[题目描述 Description] 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: ,其中 ai表示 ...
- spring framework 各版本源码下载地址
现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-projects/spring-framework/tags ...
- Spring 数据源配置一:单一数据源
最近遇到一个项目,需要访问都多个数据源,并且数据库是不同厂商(mysql, sqlserver). 所以对此做了一些研究,这里咱们采用渐进的方式来展开,先谈谈单一数据源配置.(稍后有时间会陆续补充其 ...
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
机器学习算法与Python实践之(二)支持向量机(SVM)初级 机器学习算法与Python实践之(二)支持向量机(SVM)初级 zouxy09@qq.com http://blog.csdn.net/ ...
- POJ 3349 Snowflake Snow Snowflakes(哈希)
http://poj.org/problem?id=3349 题意 :分别给你n片雪花的六个角的长度,让你比较一下这n个雪花有没有相同的. 思路:一开始以为把每一个雪花的六个角的长度sort一下,然后 ...
- 程序模拟浏览器请求及会话保持-python实现
http://www.cnblogs.com/zxlovenet/p/4006649.html
- SPRING IN ACTION 第4版笔记-第五章Building Spring web applications-001-SpringMVC介绍
一. 二.用Java文件配置web application 1. package spittr.config; import org.springframework.web.servlet.suppo ...
- Altium Designer 特定网络取消 remove loops
在使用Altium Designer时,在PCB Editor 里面可以设定是否需要Automatically remove Loops,但是这个设置是全局的,在设计时难免会遇到对大部分网络是需要删除 ...