分享

storm我想把标记位值为A的数据发送到A_Bolt,值为B的发送到B_Bolt,这个怎么做?

bioger_hit 发表于 2014-10-8 19:43:13 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 10794
问一下,我的spout有一批数据,这批数据都有一个标记位,值分别为A、B、C,我想把标记位值为A的数据发送到A_Bolt,值为B的发送到B_Bolt,这个怎么做?
好像spout会把数据都一样的发给从它拿数据的bolt吧


欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(5)人评论

跳转到指定楼层
howtodown 发表于 2014-10-8 19:46:17
在bolt里面过滤
判断标记位不是你想要的,就ack 和 return
或则
分三个spout

固定每个spout后续的bolt

或者用一个bolt过滤后,分别发向固定的三个后续bolt

但是这个要unanchor



回复

使用道具 举报

bioger_hit 发表于 2014-10-8 20:10:54
如果spout没办法指定bolt,最好的应该是分spout了

回复

使用道具 举报

howtodown 发表于 2014-10-8 20:11:31
其实第一个也还好呀
直接return



回复

使用道具 举报

bioger_hit 发表于 2014-10-8 20:12:05
这样会占用网络资源吧,重复传了三份
用rocketmq的tag标记来区分,然后用三个不同spout来消费不同的tag,应该比较好



回复

使用道具 举报

howtodown 发表于 2014-10-8 20:12:39
能这样做,比较好
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条