vert.x甚至是总线地址都是单向的吗?

时间:2019-07-05 10:24:50

标签: vert.x

两个顶点之间需要发送和接收数据。是否有两个事件总线地址,每个方向一个。或者可能有一个vert.x事件总线地址,并在同一地址上发送/接收这两个地址。

2 个答案:

答案 0 :(得分:1)

在vert.x中,当您通过eventBus发送消息时,可以注册一个replayHandler来接收回复消息。

<T> EventBus send(String address,
                  Object message,
                  Handler<AsyncResult<Message<T>>> replyHandler)

vert.x send with replyHandler

答案 1 :(得分:0)

EventBus是单向的。

如果您需要从A->BB->A发送独立消息,则必须注册两个地址。

我仍然建议不要这样做,因为循环依赖关系容易出错。本质上,这是造成死锁的常见秘诀。 A正在等待来自B的消息,而B正在等待来自A的消息。

在这种情况下通常要做的是介绍经纪人。该代理将接收所有消息,并确定此消息从何处到达。因此,他们将使用回复机制来代替A和B各自持有一个EventBus地址。