4

ZeroMQ ガイドには、インプロセス マルチスレッド (インプロセス トランスポート) に ZeroMQ を使用する良い例があります。ただし、この例は、文字列である単純なメッセージ ペイロードを示しています。したがって、シリアライゼーションとデシリアライゼーションのコストはわずかです。

ただし、大規模なビジネス ドメイン オブジェクトの例を考えてみましょう。このドメイン オブジェクトは、その XML 表現にシリアル化できます。では、各スレッドと通信するために、ドミン オブジェクトを 1 つのスレッドでシリアライズし、inproc ワーカー スレッドに送信し、デシリアライズしてメッセージ ペイロードに作用させる必要がある場合、ZeroMQ はマルチスレッドに対してどのようにパフォーマンスを発揮できるでしょうか。シリアライゼーションとデシリアライゼーションのコストは、メッセージ パッシングのパフォーマンスの向上を無効にしないでしょうか?

将来的には、CPU 間、ノード間、ネットワーク間などでスケーリングできるため、この構成の利点を理解しています。しかし、「ZeroMQを使用したマルチスレッド」の概念全体で混乱しています。

もう 1 つの方法は、ドメイン オブジェクトをキャッシュに格納し、ID をワーカー スレッドに渡すだけで、キャッシュから実際のドメイン オブジェクトをフェッチすることです。これは意図したものですか?

ユースケースやベストプラクティスは大歓迎です。

4

1 に答える 1

2

ØMQは、プロセスの内外でデータを移動するのに優れていますが、バイナリ表現との間でデータをマーシャリングするのには適していません。

セリリゼーションとデセリリゼーションのコストは、メッセージパッシングのパフォーマンスの向上を打ち消しませんか?

メッセージパッシングを効果的に使用することで、同期プロセスを並列プロセスに変えることができます。主な利点は、メッセージを転送できる速度ではなく、現在並行して作業を行っていることです。

于 2013-02-12T12:39:47.960 に答える