首页 > 解决方案 > 在“本地”使用 Vert.x 事件总线(java,单个 jvm)时是否可以避免序列化?

问题描述

我的情况是:

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

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

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

标签: javavert.xevent-bus

解决方案


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;
}

推荐阅读