我们在项目中使用一些jms服务器。传递对象时,我们有两个选择:
implements Serializable
,然后直接传递。 (消息类只是一个简单的java bean)Gson
将它们序列化为json,然后在消费者端进行反序列化多想想:
我更喜欢第一个选项,因为它很容易,并且性能比第二个更好。
但是我的同事更喜欢第二个,他们说他们听说有一些问题(但他们并不完全确切)使用java内置序列化,他们可能有一天会遇到问题。
我应该选择哪个选项? Java提供的内置序列化有什么问题吗?
答案 0 :(得分:0)
如果您使用持久性JMS消息,则应使用文本格式作为Gson或XML,因为消息将在应用程序更新后继续存在。
使用序列化的java对象时,您可能会在应用程序更新后遇到问题,因为某些对象将不再可反序列化。然后,XML还具有明确定义的架构的优势。
当您使用非持久性JMS消息并且应用程序关闭时应该丢失所有消息时,可能会选择序列化的Java对象。但我会将它们作为最后的手段,因为处理这种格式确实是个大问题。