クラスター内でサービスをアドバタイズするために、Hazelcast (またはその他のキャッシュ フレームワーク) を使用するという概念を検討しています。理想的には、クラスター メンバーが離脱したときに、そのサービス (またはそれらをアドバタイズするオブジェクト) をキャッシュから削除する必要があります。
これはまったく可能ですか?
クラスター内でサービスをアドバタイズするために、Hazelcast (またはその他のキャッシュ フレームワーク) を使用するという概念を検討しています。理想的には、クラスター メンバーが離脱したときに、そのサービス (またはそれらをアドバタイズするオブジェクト) をキャッシュから削除する必要があります。
これはまったく可能ですか?
確実に可能です。
問題は、どのソリューションが好きかということです。
サービスをマップに保存できる場合は、たとえば数分の ttl でマップを作成でき、各メンバーはサービスの期限切れを防ぐためにサービスを更新する必要があります。
別の解決策は、membershiplistener を使用してメンバーの変更をリッスンすることです。メンバーが脱退したら、そのメンバーに属するサービスをマップから削除する必要があります。
これが気に入らない場合は、独自の SPI ベースの実装を作成できます。SPI は、hazelcast が分散データ構造を作成するために使用する下位レベルのインフラストラクチャです。より多くの作業が必要になりますが、柔軟性も大幅に向上します。
したがって、多くの解決策があります。