0
回答
hadoop中的Storm到底能做什么?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

在Storm出现之前,进行实时处理是非常痛苦的事情,我们主要的时间都花在关注往哪里发消息,从哪里接收消息,消息如何序列化,真正的业务逻辑只占了源代码的一小部分。一个应用程序的逻辑运行在很多worker上,但这些worker需要各自单独部署,还需要部署消息队列。最大问题是系统很脆弱,而且不是容错的:需要自己保证消息队列和worker进程工作正常。

Storm完整地解决了这些问题。它是为分布式场景而生的,抽象了消息传递,会自动地在集群机器上并发地处理流式计算,让你专注于实时处理的业务逻辑。

Storm有如下特点:

1) 编程简单:开发人员只需要关注应用逻辑,而且跟Hadoop类似,Storm提供的编程原语也很简单

2) 高性能,低延迟:可以应用于广告搜索引擎这种要求对广告主的操作进行实时响应的场景。

3) 分布式:可以轻松应对数据量大,单机搞不定的场景

4) 可扩展:随着业务发展,数据量和计算量越来越大,系统可水平扩展

5) 容错:单个节点挂了不影响应用

6) 消息不丢失:保证消息处理

不过Storm不是一个完整的解决方案。使用Storm时你需要关注以下几点:

1) 如果使用的是自己的消息队列,需要加入消息队列做数据的来源和产出的代码

2) 需要考虑如何做故障处理:如何记录消息处理的进度,应对Storm重启,挂掉的场景

3) 需要考虑如何做消息的回退:如果某些消息处理一直失败怎么办?

我在博文中详细介绍了storm,学习storm全部知识,请看这篇文章:https://my.oschina.net/ijj/blog/866038

举报
隐姓埋名啊
发帖于9个月前 0回/262阅
顶部