分享

storm集群计算完成后,怎么把计算结果实时发给web容器

kunlun122 发表于 2017-7-18 18:50:40 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 8 7329
storm集群计算完成后,怎么把计算结果实时发给web容器?storm集群与web容器可能跨电脑、跨进程了

已有(8)人评论

跳转到指定楼层
starrycheng 发表于 2017-7-18 19:40:11
storm本身就是实时的,而且是分布式的,使用spout发送,bolt接收后处理数据,然后放到web容器中,当然也可以另外起一个bolt,放到web容器中。
另外一个不明白的地方:这个web容器,具体是指什么。

对于跨机器,跨进程这些都是适合storm的,可参考下面内容
worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,同一个spout/bolt的task可能会共享一个物理线程,该线程称为executor。
对于放到web容器中,storm其实可以固定ip。看懂下面文章,对于提出的问题,应该就解决了。
Storm0.8.1的(mapreduce)  Spout/Blot编程实例实例详解
http://www.aboutyun.com/forum.php?mod=viewthread&tid=8080



回复

使用道具 举报

kunlun122 发表于 2017-7-18 19:51:29
我说的web容器是tomcat,如果想把storm集群的计算结果发给tomcat,有什么方法?
回复

使用道具 举报

starrycheng 发表于 2017-7-18 19:54:10
本帖最后由 starrycheng 于 2017-7-18 19:57 编辑
kunlun122 发表于 2017-7-18 19:51
我说的web容器是tomcat,如果想把storm集群的计算结果发给tomcat,有什么方法?

tomcat是服务器软件。具体是怎么操作。比如部署在tomcat下的web网站对应的数据库等。发给tomcat,这让人摸不着头脑。发给tomcat用来干嘛。
回复

使用道具 举报

kunlun122 发表于 2017-7-18 20:01:35
就是想把实时计算结果推给web端,storm发给tomcat,tomcat通过websocket发给web端
回复

使用道具 举报

tntzbzc 发表于 2017-7-18 21:29:19
kunlun122 发表于 2017-7-18 20:01
就是想把实时计算结果推给web端,storm发给tomcat,tomcat通过websocket发给web端

先会普通的通过Java,发给tomcat。
会storm编程,在blot里面发送即可
回复

使用道具 举报

kunlun122 发表于 2017-7-19 16:50:16
在bolt里面怎么发送?storm和tomcat可能都不在一台服务器上
回复

使用道具 举报

szcountryboy 发表于 2017-7-21 10:45:31
你tomcat从哪里读取数据,在storm的bolt里面就将结果发送到那里.

比如你tomcat通过java后台从关系数据库读取数据,那你bolt就写入关系数据库;  如果你java后台从redis读取数据,你bolt就将数据写入redis; 如果你java程序订阅消息对列数据,那你bolt就以生产者的方式将数据写入消息对列.
回复

使用道具 举报

z574438205 发表于 2017-9-30 11:22:37
你所说的应该是把storm计算出的结果通过接口的方式提交给web应用吧?然后web应用上再做展示?
如果是这样的话,可以让web提供一个http接口,在storm的bolt中调用http接口把数据传递过去
但这样做不太适合扩展,如果数据量上来,会造成接口的压力巨大
所以不如如楼上所说,将数据放到redis或者说推送给kafka,然后web应用再去读取redis、kafka即可
redis、kafka都可以搭建集群环境,很容易就可以实现扩容
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条