我有一个关于 Vertx Eventbus 以及如何正确使用它的问题。在 Vertx 中使用 EventBus 至少有两种选择:
我使用 Vertx 提供的 Eventbus 方法来调用驻留在另一个 Verticle 上的函数。这里的好处是我可以使用编解码器通过 Eventbus 传递参数。如果我只想在本地使用它,我可以传递参考。这里的缺点是我需要提供一个字符串来定义我想要调用的函数。从开发者的速度来看,这很糟糕,因为现在我必须在代码库中搜索字符串才能找到我调用的函数。
我使用 Vertx 服务代理。这非常方便,因为它在编译时为 Eventbus 生成代理。这使我作为开发人员可以跟踪我在 Verticles 中调用的函数,而我根本不需要处理 Eventbus API。但是它也有一些重要的缺点:现在启动时间需要更长的时间,并且服务代理正在将所有函数属性转换为 Json 和从 Json 转换。这可能对应用程序性能非常不利。
我的问题:使用 Eventbus 的最佳方式是什么?我是否遗漏了一些可以帮助我解决选项二缺点的东西?有没有我还没有看到的替代品?
谢谢