0

私はアーキテクチャで JMS をさまざまな方法で使用しています。

レイテンシーとパフォーマンスは、私たちのアーキテクチャーにおいて非常に大きな要素です。

メッセージ内でJavaオブジェクト全体を渡すためにObjectMessageでjmsを使用すると、多くのパフォーマンスが必要になることを読みました。

別の解決策は、json,protobuff に変換し、メッセージを bytemessage/text メッセージとして送信することです。

これを明確にしてください:

  1. jsonを選択した場合。String から json に変換した後、メッセージ
    をテストまたは ByteArray として送信する必要がありますか? (違いは?)

  2. 送信者側から文字列を json に変換する合計時間と
    、消費者側で文字列を json に変換する時間の合計は、ObjectMessage を送信するよりも少なくなりますか?

ありがとう、レイ。

4

1 に答える 1

1

ちょうど私の2セント

1)IMO、TextMessageを使用して文字列でデータを送信し、Jsonオブジェクトに逆シリアル化する必要があります。正確なパフォーマンス統計はわかりませんが、オブジェクトに再構築するときのオーバーヘッドが少ないため、シリアライゼーションはマーシャリングよりも優れていると思います。

マーシャリングとシリアライゼーションの比較

2)さらに、データをオブジェクト ストリームとして送信することを回避するだけで、メッセージを非 Java ベースのメッセージ ソリューションで受信および処理できます。

Java Dzoneから

Externalizable の大きな欠点は、このロジックを自分で維持する必要があることです。クラスのフィールドを追加、削除、または変更する場合は、それを考慮して writeExternal/readExternal メソッドを変更する必要があります。

于 2013-03-05T08:10:21.060 に答える