使用事件总线发布事件与使用带有@观察者的CDI事件有什么区别?
我目前正在使用事件总线进行Quarkus中的所有异步通信。由于vert.x事件总线不支持Quarkus (https://github.com/quarkusio/quarkus/issues/10889)中的集群通信,所以我同意本地事件发布。但是,在什么情况下,人们会选择使用CDI事件而不是使用事件总线呢?
发布于 2022-04-18 18:47:44
CDI事件“在线程中”发生,本质上意味着事件触发线程通过观察者调用一个未知的数目,这个值可能是0,可能是100。这里的关键是观察者总是在与触发线程相同的线程中运行。在这里阅读详细信息:https://www.baeldung.com/cdi-event-notification
这可能与Vert.x不同,这些事件可能在新线程中触发,也可能在同一线程中触发。这完全取决于您如何编写和配置您的程序。如果您有一个集群Vert.x应用程序,那么如果它们在另一个集群成员上启动,它们肯定会在不同的线程中触发。
正确的答案取决于你想要解决的问题。
https://stackoverflow.com/questions/71880459
复制相似问题