关于storm的基础,参照我这篇文章:流式计算storm
关于并发和并行,参照我这篇文章:并发和并行
关于storm的并行度解释,参照我这篇文章:storm的并行度解释
关于storm的流分组策略,参照我这篇文章:storm的流分组策略
关于storm的消息可靠机制,参照我这篇文章:storm的消息可靠机制

storm中有多个bolt和多个spout,他们之间会有多种连接方式,他们之间的tuple也是多种传递方式,正是有了这些灵活的分组策略,才使得storm可以分层处理,每层bolt都只做自己的事情,做完就通过分组策略传给下一层bolt

storm里面有7种 stream grouping

github上有源码:https://github.com/apache/storm
最好是下载到本地,对着下面提供的看.

这7中storm对应的接口是:

org.apache.storm.topology.InputDeclarer<T extends InputDeclarer>

1.shuffle grouping

org.apache.storm.grouping.ShuffleGrouping

随机分组,保证每个bolt任务被均匀的分配tuple

2.fields grouping

org.apache.storm.trident.partition.IndexHashGrouping

按字段分组,相同字段的tuple总是被分到相同的bolt中的一个task上,一般用在计数等

3.all grouping

广播发送tuple,tuple会被发给所有bolt,常用来发送信号

4.global grouping

org.apache.storm.trident.partition.GlobalGrouping

全局分组,所有的tuple被发到一个bolt的一个task上,一般用来汇总

5.none grouping

org.apache.storm.testing.NGrouping

不分组,效果和随机分组一样,
有点不一样的是storm会使用none grouping的这一个bolt放到这个bolt的订阅者同一个线程里面去执行 ( 这个暂时没明白有什么好处之类的 )

6.direct grouping

org.apache.storm.trident.partition.IdentityGrouping

直接分组消息发送者指定消息接收者的哪个task处理这个消息,只有被表名direct stream的消息流可以处理这个方法
消息处理者可以通过topologyContext来获取处理它消息的task id

7.local or shuffle grouping

org.apache.storm.grouping.LoadAwareShuffleGrouping

自定义分组,需实现customStreamGrouping接口

storm的流分组策略相关推荐

  1. 大数据技术之_17_Storm学习_Storm 概述+Storm 基础知识+Storm 集群搭建+Storm 常用 API+Storm 分组策略和并发度

    大数据技术之_17_Storm学习 一 Storm 概述 1.1 离线计算是什么? 1.2 流式计算是什么? 1.3 Storm 是什么? 1.4 Storm 与 Hadoop 的区别 1.5 Sto ...

  2. Storm(流计算)技术原理

    流计算概述 什么是流数据: 数据有静态数据和流数据. 静态数据: 很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量历史数据就是静态数据.技术人员可以利用数据挖掘和OLAP(On-Line ...

  3. java8流分组 性能_Java性能教程– Java 8流有多快?

    java8流分组 性能 在此JAX Magazine的预览预览中,JAX伦敦发言人Angelika Langer为使用Java流的任何人回答了最重要的问题:它们真的更快吗? Java 8是JDK收集框 ...

  4. Stream流-分组操作

    Stream流-分组操作 文章目录 Stream流-分组操作 方法1-- groupingBy(Function) 方法2-- groupingBy(Function,Collector) 方法3-- ...

  5. 【Storm】【二】Storm和流处理简介

    Storm和流处理简介 一.Storm          1.1 简介          1.2 Storm 与 Hadoop对比          1.3 Storm 与 Spark Streami ...

  6. 猜想 QQ好友分组 (微信好友)多层次分组策略 QQ好友过多

    猜想 QQ好友过多 QQ好友分组 (微信好友)多层次分组策略  问题: 在QQ好友比较多的好友分组,一大堆不同的好友简单的堆叠在一起,翻看一次一个分组里数百个的好友要花费较长的时间,而且一大排头像文字 ...

  7. Storm部分:Storm Grouping -- 数据流分组(各种数据分发策略的练习)【Java版纯代码】

    1.源数据 www.taobao.com XXYH6YCGFJYERTT834R52FDXV9U34 2017-02-21 12:40:49 www.taobao.com XXYH6YCGFJYERT ...

  8. Storm之——流组件简单串行编程实践

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/78447229 Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象, ...

  9. Apache Storm 实时流处理系统ACK机制以及源码分析

    1.ACK机制简介 Storm的可靠性是指Storm会告知用户每一个消息单元是否在一个指定的时间(timeout)内被完全处理.完全处理的意思是该MessageId绑定的源Tuple以及由该源Tupl ...

最新文章

  1. 我焦躁,并不只是心里承受,还是因为我上面担着。
  2. go语言中append函数的使用
  3. ubuntu下python thrift安装
  4. 使用带有OAuth2的Web应用程序和使用JWT来调用API – WSO2 API Manager
  5. java获取C盘下的隐藏目录文件名称
  6. Array flat
  7. 【电商系统】—项目梳理(一)
  8. python简单代码-用Python代码实现5种最好的、简单的数据可视化!
  9. 笔试编程题常用的一些技巧方法
  10. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用6
  11. ios 卡片切换效果
  12. sql生成(查询数据的存储过程)代码的存储过程
  13. Java练习题2-基础(含解析)
  14. 【ES实战】ES上的安全性运行方式
  15. 使用Python+Appuim 清理微信
  16. e4e反演框架:Designing an Encoder for StyleGAN Image Manipulation
  17. 腾讯抖音搬运视频如何消重
  18. 熟读100句英文,记7000单词
  19. 使用树莓派制作一套“NAS+私有云盘+下载机”
  20. 猎聘网的第二次面试之路

热门文章

  1. CreateFile
  2. 简单的循环以及从接口获取数组对象的一个字段集合
  3. 团队博客 一 需求分析
  4. JAVA并发编程3_线程同步之synchronized关键字
  5. jQuery源码研究01
  6. 数据库高级知识——MySql锁机制
  7. 项目:基于以太网通信,单片机作为客户端,接收CAN-Ethernet的十六进制数据
  8. 【计算机网络复习 物理层】2.3 物理层设备
  9. LeetCode 771. 宝石与石头
  10. mysql 8.0认证失败_Node.js无法对MySQL 8.0进行身份验证