我试图理解storm拓扑中使用multilang协议的可靠消息传递的消息序列。我遇到过这样的问题:storm报告一个错误,说“不存在或已经确认元组”。
下面是我认为序列应该是这样的。。。。
有人能确认或纠正我下面的信息顺序吗?
拓扑:1喷口->1螺栓A->1螺栓B
为了清楚起见,省略了握手。
风暴->喷口{命令:下一个}结束
喷口->风暴{命令:emit,id:“42”,元组:[“hello”,“world”]}结束
喷口->stom{command:sync}结束
风暴->博尔塔{id:“6524”,元组:[“你好”,“世界”]}结束
bolta->storm{command:ack,id:“6524”}结束
bolta->storm{command:emit,id:“43”,anchor:[“6524”],tuple[“ciao”,“mondo”]}end//已将tuple翻译成意大利语:-)
storm->boltb{id:“7465”,tuple[“ciao”,“mondo”]}结束
boltb->storm{command:ack,id:“7465”}结束
storm->spout{command:ack,id:“42”}end//storm让喷口知道分支已经完成。
1条答案
按热度按时间wvt8vs2t1#
在bolt中,如果要将正在发出的元组锚定到已接收的元组,则必须首先发出锚定的元组,然后再为已接收的元组发出ack。所以你应该: