Storm概念学习系列之storm的功能和三大应用
不多说,直接上干货!
storm的功能
Storm 有许多应用领域:实时分析、在线机器学习、持续计算、分布式 RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、 ETL(Extraction-Transformation-Loading 的缩写,即数据抽取、转换和加载)等。
下面介绍 Storm 的三大主要应用
(1)流处理( stream processing)
Storm 可用来实时处理新数据和更新数据库,兼具容错性和可扩展性,即 Storm 可以用来处理源源不断流进来的消息,处理之后将结果写入某个存储中。
(2)持续计算( continuous computation)
Storm 可进行连续查询并把结果即时反馈给客户端,如把 Twitter 上的热门话题发送到浏览器中。
Storm能保证计算可以永久运行,直到用户结束计算进程为止。
(3)分布式远程程序调用( distributed RPC)
Storm 可用来并行处理密集查询。 Storm 的拓扑结构是一个等待调用信息的分布函数,当它收到一条调用信息后,会对查询进行计算,并返回查询结果。例如,分布式 RPC 可以做并行搜索或者处理大集合的数据,通过配置DRPC服务器,将 Storm的Topology发布为DRPC服务。客户端程序可以调用DRPC服务将数据发送到 Storm 集群中,并接收处理结果的反馈。这种方式需要DRPC服务器转发,其中 DRPC 服务器底层通过 Thrift 实现。适合的业务场景主要是实时计算,且扩展性良好,可以增加每个节点的 Worker 数量来动态扩展。
Storm 绝对是一个相当“有内涵”的系统,能把那么复杂的事情抽象得很完美,能把数学用到极致,这是笔者使用 Storm 实现消息确保被执行一次之后最直接的感觉。例如互联网方向的实时推荐,海量的用户、数据,且需要实时的推荐算法计算,该如何实现?有了 Storm, Spout 从数据源取得数据, Bolt 可以合并,也可以切分数据,最终完成整个业务逻辑处理并输出结果。分分合合,就像河水从曲曲折折的河道一直流向大海一样,所以也称这种数据处理方式为流式计算。
最新文章
- 在Asp.Net中操作PDF – iTextSharp - 使用表格
- SQL Server Reporting Service(SSRS) 第四篇 SSRS 用法总结
- react学习笔记1
- Struts2 本是非单例的,与Spring集成就默认为单例
- MVC的EF编辑,不用查询直接修改
- Linux grep和find的区别
- Python 列表生成式、生成器、迭代器
- Heritrix个性化设置抓取目标
- 自定义Annotation
- C# 委托、匿名方法、lambda简介
- <;mate name=";viewport";>;移动端设置详解
- 图片转字符画 【学习ing】
- Python switch(多分支选择)的实现
- maven . mac
- 2019.01.23 hdu1693 Eat the Trees(轮廓线dp)
- Java正则表达式初学者使用法简介
- 禁止直接访问ashx页面
- Linux学习1-创建虚拟机
- mongo同步到es
- 【LOJ】#2670. 「NOI2012」随机数生成器
热门文章
- 【转】 Pro Android学习笔记(六九):HTTP服务(3):HTTP POST MultiPart
- 【转】 Pro Android学习笔记(五九):Preferences(3):EditText和Ringtone Preference
- 问题:C# params类型参数;结果:C#的参数类型:params、out和ref
- Android精品源码分享第四波袭来,免费下载!
- 基于Docker部署私有npm
- Windchill 配置LOG文件,使开发中的代码能显示打印的信息
- [poj2135]Farm Tour(最小费用流)
- Java之网络编程UDP和TCP
- SpringBoot04 SpringBoot 和 MyBatis 整合
- [原创]SQL表值函数:把用逗号分隔的字符串转换成表格数据