2014-01-24 30 views
0

我們在項目中使用了一些jms服務器。當傳遞對象時,我們有兩種選擇:使用java內置`serialization`來傳遞對象到JMS隊列是否安全?

  1. 將消息類別標記爲implements Serializable,然後直接傳遞它。 (消息類只是一個簡單的java bean)
  2. 使用Gson他們序列化JSON,然後在消費者身邊

反序列化和多想想:

  1. 我們只是路過他們在內部隊列這意味着它們全部運行在單個JVM中
  2. 我們可能會轉而在未來使用外部隊列
  3. 消息可能在未來嵌套字段

我更喜歡第一種選擇,因爲它很容易,並且具有比第二個更好的性能。

但我colleages喜歡第二個,他們說,他們聽到有一些問題(但他們不知道究竟)與Java內置序列化,他們可能有問題的一些日子。

我會選擇哪一個選項? Java提供的內置序列化有什麼問題嗎?

回答

0

如果使用持久性JMS消息,您應該使用文本格式GSON或XML,因爲消息將生存的應用程序更新。

使用時你可能會碰到後應用程序的更新問題,序列化的Java對象,因爲某些對象不會deserializable了。那麼XML將具有明確定義模式的優勢。

當您使用非持久性JMS消息和所有的消息都應該在應用程序關閉時迷路,然後序列化的Java對象可能是一種選擇。但我會用它們作爲最後的手段,因爲處理這種格式確實是一個大問題。

相關問題