Apache Storm Multilang协议确认

2024-05-23 18:40:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过使用Multilang协议的可靠消息传递来理解Storm拓扑中的消息序列。我一直有这样的问题,Storm报告错误说“不存在或已经确认元组”。在

下面是我认为的顺序应该是。。。。在

有人能确认或纠正我下面的信息序列吗?在

拓扑结构:1个喷嘴->1个螺栓A->1个螺栓B

为了清楚起见,省略握手。在

风暴->喷口{command:next}end

Spout->;Storm{command:emit,Id:“42”,元组:[“Hello”,“World”]}结束

喷口->;Stom{command:sync}end

风暴->;博尔塔{id:“6524”,元组:[“你好”,“世界”]}结束

BoltA->;Storm{command:ack,id:“6524”}结束

BoltA->;Storm{command:emit,id:“43”,anchor:[“6524”],tuple[“Ciao”,“Mondo”]}end//元组已被翻译成意大利语:-)

风暴->;BoltB{id:“7465”,tuple[“Ciao”,“Mondo”]}结束

BoltB->;Storm{command:ack,id:“7465”}结束

Storm->;Spout{command:ack,id:“42”}end//Storm让喷口知道分支已完成。在


Tags: gtid序列commandend元组emit风暴
1条回答
网友
1楼 · 发布于 2024-05-23 18:40:23

在bolt中,如果您想将要发出的元组锚定到已接收的元组,则必须先发出锚定的元组,然后再为接收到的元组发出ack。所以你应该:

Spout -> Storm emit 1
Storm -> Bolt deliver 1
Bolt -> emit 2, anchored to 1
Bolt -> ack 1

相关问题 更多 >