3

ZeroMQ を使用して pub/sub アーキテクチャを設計しようとしています。ZMQ のサブスクライバー用の内部フィルタリングを最大限に活用したいと考えています。

ZMQ で複数のメッセージ エンベロープを処理して、受信サブスクライバーが関心のあるすべてのエンベロープに一致するメッセージのみを表示するための最良の方法は何ですか?

階層の例として、UniverseID、SessionID、および MessageTypeID があり、次のように、特定のセッションとユニバースの特定のタイプの MessageTypeID をすべて見つけたいとします。

UniverseID (Subscriber Key, Example = 42)
    SessionID (Subscriber Key, Example = 4)
        MessageTypeID (Subscriber Key, Example = 2)
           Message (Actual Message)

ZMQ で複数のフレームを使用して「レイヤード フィルター」のようにメッセージをフィルター処理する方法はありますか、または単一のエンベロープ フレーム内に単一のキーを構築する最良の方法はありますか (つまり、「UniverseID.SessionID.MessageTypeID」またはこの例では「42.4」として) .2" )?

最終的な目標は、サブスクライバーが ZMQ の外でフィルタリングを行わないようにすることです。これにより、ソケットで zmq_recv を呼び出すと、3 つのサブスクライバー キーすべてに一致するメッセージのみが表示され、興味があるかどうかを手動で確認する必要がなくなります。何かをする前のメッセージ。

4

1 に答える 1