Storm 中Fields有什么用

发布时间:2024-07-05 点击:108
云计算
今天就跟大家聊聊有关storm 中fields有什么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
transactionaltopologybuilderbuilder=newtransactionaltopologybuilder(\”test\”,\”spout\”,newtweetstransactionalspout());builder.setbolt(\”users-splitter\”,newusersplitterbolt(),4).shufflegrouping(\”spout\”);builder.setbolt(\”hashtag-splitter\”,newhashtagsplitterbolt(),4).shufflegrouping(\”spout\”);builder.setbolt(\”user-hashtag-merger\”,newuserhashtagjoinbolt(),4).fieldsgrouping(\”users-splitter\”,\”users\”,newfields(\”tweet_id\”)).fieldsgrouping(\”hashtag-splitter\”,\”hashtags\”,newfields(\”tweet_id\”));
这里有两个bolt在向user-hashtag-merger发送数据,两个bolt在 emit的时候可能发送了不同的tuple比如:
users-splitter中emit(new values(a, b, c)); declarer.declare(new fields(\”id\”, \”name\”, \”tweet_id\”));
hashtag-splitter中则emit(new values(a, b)); declarer.declare(new fields(\”id\”, \”tweet_id\”));
比如user-hashtag-merger中需要的是users-splitter中的c,hashtag-splitter 中的b,而在user-hashtag-merger
中接收数据的时候无法知道数据是哪个bolt发来的(或者就算知道,发来的数据格式不一样也不是一个好的设计)所以这边设定了一个
fields,这样在发送数据的时候只发送指定fields的数据,比如这边user-hashtag-merger不管前面bolt emit的时候
发送了什么,最后收到的只有一个,方便处理。
builder.setbolt(\”redis-committer\”,newrediscommitercommiterbolt()).globalgrouping(\”users-splitter\”,\”users\”).globalgrouping(\”hashtag-splitter\”,\”hashtags\”).globalgrouping(\”user-hashtag-merger\”);
看完上述内容,你们对storm 中fields有什么用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注资讯频道,感谢大家的支持。

域名过期怎么办 域名过期什么时候才能注册
如何让租云服务器炒期货可以吗?
租用域名空间
投资域名需要多少钱
阿里云服务器通用型和共享型区别大吗
购买域名之后怎么做网站 建一个网站需要多少钱
ssl这个显示呢-云服务器问题
大润发宣布百家门店完成天猫新零售改造