使用Guava的EventBus需要注意的事项

4
文档中得知:

它不是一个通用的发布-订阅系统,也不适用于进程间通信。

当说它不是通用的发布-订阅系统时,意思是它不是一个可以适用于所有情况的发布-订阅系统。而且它也不是为了进程间通信而设计的。
2个回答

2
据我所知,这仅限于JVM内部。发布/订阅通常是在可能不同位置的进程之间进行的:例如,一个Spring应用程序发布事件,另一个完全位于不同地方的Spring应用程序消费它们。请注意,这里的JVM指Java虚拟机。"最初的回答"为"Original Answer"。

1

这个问题在 EventBusExplained 页面底部有更详细的解释:

为什么我不能用EventBus来做<神奇的事情>?

EventBus被设计用来处理大量的使用案例。我们更倾向于针对大多数使用案例精准地击中要害,而不是在所有使用案例上表现得还算可以。

此外,使EventBus可扩展——并且使其易于扩展和提高生产力,同时仍然允许我们对核心EventBus API进行添加而不与您的任何扩展冲突——是一个非常困难的问题

如果您真的非常需要EventBus目前无法提供的神奇功能X,则应该提交问题,并设计自己的替代方案。

(强调我的.)

例如,将EventBus与Kafka进行比较-后者更具可扩展性,但也更加复杂。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接