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 つのサブスクライバー キーすべてに一致するメッセージのみが表示され、興味があるかどうかを手動で確認する必要がなくなります。何かをする前のメッセージ。