本节书摘来自华章计算机《Storm企业级应用:实战、运维和调优》一书中的第1章,第1.5节,作者:马延辉 陈书美 雷葆华著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.5 Storm的功能
Storm有许多应用领域:实时分析、在线机器学习、持续计算、分布式RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、ETL(Extraction-Transformation-Loading的缩写,即数据抽取、转换和加载)等。下面介绍Storm的三大主要应用。
(1)信息流处理(stream processing)
Storm可用来实时处理新数据和更新数据库,兼具容错性和可扩展性,即Storm可以用来处理源源不断流进来的消息,处理之后将结果写入某个存储中。
(2)持续计算(continuous computation)
Storm可进行连续查询并把结果即时反馈给客户端,如把Twitter上的热门话题发送到浏览器中。
(3)分布式远程程序调用(distributed RPC)
Storm可用来并行处理密集查询。Storm的拓扑结构是一个等待调用信息的分布函数,当它收到一条调用信息后,会对查询进行计算,并返回查询结果。例如,分布式RPC可以做并行搜索或者处理大集合的数据,通过配置DRPC服务器,将Storm的Topology发布为DRPC服务。客户端程序可以调用DRPC服务将数据发送到Storm集群中,并接收处理结果的反馈。这种方式需要DRPC服务器转发,其中DRPC服务器底层通过Thrift实现。适合的业务场景主要是实时计算,且扩展性良好,可以增加每个节点的Worker数量来动态扩展。
本书将针对这些应用场景,介绍广告实时计算系统、语音“实时墙”等多个案例,这些案例是从不同领域、不同行业角度的总结分析。但是万变不离其宗,目的是参考以上Storm的三大应用,将Storm切实应用到行业生产中。