我想使用protobuf在许多JVM之间提供通信。那些JVM正在执行基于组件的中间件,因此存在我无法预料的任意对象,因为它们是由第三方开发人员编写的。 问题是我想让组件开发人员免除指定序列化机制的负担。我认为这个决定有一些好处:
然而,进行自动序列化的唯一方法是使用java内置序列化,但我们都知道这很慢。所以,我的问题是:我们可以创建一个机制,给定一个Java对象,用它的内容构建一个protobuf消息,我们可以发送到另一个进程吗?
我知道这不是你应该使用protobuf的方式,我可以看到一些问题。首先让我解释一下我认为我们可以实现自己的目标。
注1:您可以看到我们在通信渠道的一侧进行此操作,我们需要双方都这样做。我认为,可以使用内置序列化(使用第一个对象构建protobuf消息)发送第一个消息,并使用protobuf发送更多对象。
注2:不需要步骤5,但每次发送对象时避免反射都很有用。
注3:Protobuf不是强制性的。我包括它因为它可能提供了一些工具来处理我遇到的问题。
我可以看到有很多工作要做。我也可以看到它可能在一些极端情况下不起作用。因此,我想知道是否已经建立了一些库并能够做到这一点?