一、Storm是什么?

1.定义: 
  storm是一个分布式实时计算系统,用户只需要提供自己的插件(例如一个jar包,其中编写用户自己的逻辑代码),然后将它部署到storm服务器上,storm的master服务器就会为我们自动将jar包分配到slave服务器的进程中,然后在slave服务器中运行。(注意:master服务器只会接受用户提供的插件(也称之为拓扑,如果是java语言编写的插件可以说一个jar包就是一个拓扑),然后分配代码到slave服务器,在slave服务器上真正运行我们的代码)。

2.特点:低延迟、分布式、高性能、高容错(Ack机制)、可扩展、消息保证有序性。

3.系统角色:
  (1) Nimbus:存在于master服务器,主要帮助分配拓扑到slave服务器中。
  (2) Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。 
  (3)Worker:运行拓扑的进程。

4.系统组件:
   (1)spout:发送数据源的一个组件(在我们提供的拓扑中,实现此接口后在对应方法中获取要处理的数据,比如一个log文件内容,然后发送到所关联bolt进行具体数据内容的处理)。
   (2)bolt:接受由spout发送过来的数据进行处理。(bolt主要做数据处理,我们的具体的业务逻辑都写在在此接口的实现类中)。
   补充:Task:worker中每一个 Spout /bolt的线程称为一个task. 在 Storm 0.8之后,task不再与物理线程对应,同一个 Spout /bolt的task可能会共享一个物理线程,该线程称为executor。 

5.系统原理图:

总结:storm其实就是一个数据实时处理中心,比如我们想要监控系统的日志情况,出现异常后可以记录到数据库,就可以根据storm的规范提供一个组件(也就是拓扑),然后发布到storm集群中就可以了,storm保证了消息的安全性(出现异常不会丢失),有序性,身为程序猿的我们只需要根据系统需求配置好storm服务器的参数(参数后续会将),然后发布我们提供的拓扑就已达到我们的目的。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值