storm的特点:
- 支撑各种实时类的项目场景:实时处理消息以及更新数据库,基于最基础的实时计算语义和API(实时数据处理领域)
- 对实时的数据流持续的进行查询或计算,同时将最新的计算结果持续的推送给客户端展示,同样基于最基础的实时计算语义和API(实时数据分析领域)对耗时的查询进行并行化,基于DRPC,即分布式RPC调用,单表30天数据,并行化,每个进程查询一天数据,最后组装结果
- 高度的可伸缩性:如果要扩容直接加机器,调整storm计算作业的并行度,storm会自动部署更多的进程和线程到其他的机器,无缝快速扩容
- 数据不丢失的保证:storm的消息可靠机制开启后,可以保证数据不丢失
- 超强的健壮性:storm比hadoop、spark等大数据类系统健壮的多,因为元数据全部放zookeeper不在内存中,稳定性和可用性很高
- 使用的便捷性:核心语义非常的简单,开发起来效率很高
Storm的集群架构: Nimbus,Supervisor,ZooKeeper,Worker,Executor,Task
Storm的核心概念:
- topology :拓扑,一堆 spout+bolt,就会组成一个topology,一个拓扑涵盖数据源获取/生产+数据处理的所有的代码逻辑
- spout :数据源的一个代码组件,可以写一个Java类实现一个spout接口去数据源获取数据,