リストの一部でない限り、ユーザーへのアクションを拒否する必要がある複数のフロントエンドノードを含む分散アプリケーションを作成しています。
現在、これらのノードは4つ以上ありますが、DB2を実行しているデータベースサーバーは1つだけであり、メンテナンスのためにダウンしていることがよくあります。
現在、データベースをポーリングしてメモリ内のリストを更新しているため、ユーザーがリストから削除された場合、変更は4つのノードすべてに反映されます。ただし、データベースがダウンしているときにノードの1つを再起動すると、リストが空になり、不要なすべてのユーザー要求が拒否されます。データベースがダウンしている場合でも、メッセージキューにバッファリングするため、ユーザーからのリクエストを受け入れることができますが、拒否する必要がある場合は、すぐに拒否したいと考えています。
4つのノードのそれぞれでZookeeperインスタンスを実行し、ユーザー権限をZookeeperに保存することは理にかなっていますか。したがって、読み取りは高速で、データは高可用性で一貫している必要があります。もうポーリングを行う必要はなく、データベースを再起動しても、ノードはzookeeperから構成を取得できます。