使用 Vert.x 事件总线 'locally'(java,单个 jvm)时是否可以避免序列化?

Is it possible to avoid serialization when using the Vert.x eventbus 'locally' (java, single jvm)?

我的情况是:

我了解 vert.x 事件总线的范围比我的用例要广泛得多。

我想到了一个类似于 akka 的行为:当你去分发时,你必须为你的消息提供序列化,如果你留在本地引用就会被传递。

有什么可以让我在 Vert.x 中做到这一点的吗?

Vert.x已经有这样的优化了。当发送到同一个 JVM 时,对象不会被序列化或反序列化。

你可以在这里看到实际的代码: https://github.com/eclipse/vert.x/blob/master/src/main/java/io/vertx/core/eventbus/impl/EventBusImpl.java#L372

当您实现 MessageCodec 时,您实际上有两种方法:decodeFromWire()transform()。您可以使用最简单的方法仅实现转换:

@Override
public Object transform(Object o) {
   return o;
}