我最近开始在我的新项目中使用Vert.x,我非常喜欢Event Bus使用Vert.x简化消息传递的方式。
在我的项目中,我想实现一个标准的发布/订阅机制,其中有多个订阅者/消费者监听特定的地址。因此,从Vert.x文档中,我几乎理解了如何配置事件总线、在事件总线上注册消费者以及发布消息。
现在我正在寻找的是,让消费者按顺序而不是并行地处理消息。更详细地说,我希望所有的消费者一个接一个地接收消息,而不是一起接收。我不确定它是否会被称为链接,因为处理程序的顺序现在对我来说并不重要。但是,在某些特定的场景中,我希望避免由不同的处理程序/使用者并行处理给定的消息。
在Vert.x中可以这样做吗?对此我将非常感谢您的一些建议。
谢谢&致以问候,凯雅
发布于 2017-11-21 15:42:33
您能否通过按顺序处理消息来详细说明您实际尝试实现的目标?这是不是更复杂的业务流程,每个使用者只实现该流程的一部分?还是我搞错了?
无论如何,Vert.x没有提供如何“同步”或使多个使用者按顺序处理特定消息的方法。
您可能需要做的是定义多个消息,其中每个消息都与您的业务流程的特定部分相关,并且只触发对该部分负责的使用者。
发布于 2018-11-02 04:12:04
您可以将不能并行运行的Verticles标记为worker verticles,并指定一个只有一个线程的自定义worker池。
然而,您可能想要考虑这些Verticle是否真的应该是单独的Veriticle,或者它们是否最好被建模为“方法”,所有这些方法都是从单个Verticles逐个调用的。
https://stackoverflow.com/questions/47346549
复制相似问题