私は、プロセス(プロデューサーなど)が可変数のプロセス(コンシューマーなど)に一方向メッセージを送信する必要があるという要件に取り組んでいます。
パブリッシュ/サブスクライブ モデルは、コンシューマーがプロデューサーからのメッセージをサブスクライブするため、これには適しているように思われました。これを実現するためにZeroMQを使用してみました。
ただし、いくつかの問題があります。
コンシューマはメッセージを継続的にポーリングする必要があります。新しいメッセージがあるときに消費者に通知するようにします。
プロデューサー キューがいっぱいになる可能性があります。プロデューサーが何らかの条件に基づいてキューからメッセージを削除することを望んでいました (たとえば、5 秒以上経過したメッセージを削除する、または 5 回読み取られたメッセージを削除するなど)。
コンシューマーはポーリングしており、メッセージはキューから削除されないため、コンシューマーには新しいメッセージが着信するまでメッセージが重複して表示されます。新しいメッセージごとに 1 回だけコンシューマーに通知する必要があります。
間違ったモデルを使用している可能性があることを理解しています (publish-subscribe は適していない可能性があります)。request-reply を使用することを考えましたが、プロデューサーはコンシューマーの数を追跡したくないため、うまくいきません。
誰かが良い代替案を提案できますか?