gpt4 book ai didi

java - 以互操作方式序列化消息的最佳方式是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:41:07 26 4
gpt4 key购买 nike

我正在考虑对 spring-integration 的消息序列化支持.这对于实现各种线级传输很有用 guaranteed delivery ,而且还允许与其他消息系统进行互操作(例如通过 AMQP)。

出现的根本问题是,在其有效负载和 header 中包含 Java 对象的消息应转换为 byte[] 和/或写入流。 Java 自己的序列化显然不会削减它,因为它不可互操作。我的偏好是创建一个接口(interface),允许用户为参与序列化的所有对象实现所需的逻辑。

这意味着我不想要求客户端开发人员生成他的域代码,而是为需要它的对象定义一个序列化程序。界面类似于:

public interface PayloadSerializer<T> {
byte[] bytesForObject(T source);
T objectFromBytes(byte[]);
//similar methods for streaming potentially
}

//add HeaderSerializer, MessageSerializer

这是一个明智的想法吗?完美的界面应该是什么样的?是否有标准的可互操作方式来序列化在此上下文中有意义的对象?

最佳答案

Java 中有一整套生成 XML 的框架,例如 JaxB,... 现在,其中一些格式也可能是二进制 blob,并且很难从其他平台使用,因此在您之前尝试是值得的买。还有非常易于使用的 XML 序列化程序。

JSON 现在非常流行,因为它可以轻松地与浏览器进行互操作,而且它比 XML 更易读且更简洁。

当性能很重要时,Protocol Buffers 和 Thrift 很受欢迎。这些是二进制格式,但在多个平台上得到了很好的指定和支持。

关于java - 以互操作方式序列化消息的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3028046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com