Keycloak と JDBC Ping

2019年8月12日 Sebastian Łaskaiwec 著

数ヶ月前、JDBC_PING プロトコルを使用したクラスタリングに関する素晴らしい記事を公開しました。その後、セットアップを簡素化できる Keycloak コンテナイメージ のいくつかの改善を導入しました。そのため、このブログ記事に入る前に、Keycloak クラスタセットアップ の記事をご覧ください。

コンテナイメージの何が変わったのか?

おそらく最も重要な変更は、変数を使用して JGroups ディスカバリープロトコルを設定することです(プルリクエストを参照)。変更が取り込まれると、2つのプロパティを設定することで JGroups ディスカバリーを設定できるようになりました。

変更を適用してみましょう...

JDBC_PING ベースのセットアップは、すべての Keycloak インスタンスを同じデータベースに接続するすべてのシナリオで正常に機能します。JDBC_PING は JNDI バインディングを使用してデータベース接続を取得するように構成できるため、Keycloak データベースに簡単に接続できます。必要なのは、2つのパラメータを Docker イメージに追加することだけです。

エンドツーエンドのシナリオは こちら をご覧ください。

追加設定

シナリオによっては、追加設定が必要になる場合があります。すべての追加設定は JGROUPS_DISCOVERY_PROPERTIES に追加できます。以下に、役立つヒントとよくある問題を示します。

問題の説明 考えられる解決策
初期化 SQL を調整する必要があります この場合は、以下を参照してくださいinitialize_sqlJDBC_PING プロパティ
Keycloak がクラッシュした場合、データベースはクリアされません 有効にするremove_old_coords_on_view_changeプロパティを有効にします
Keycloak がクラッシュした場合、データベースはクリアされません また、クラスターがそれほど大きくない場合は、以下を有効にすることができますremove_all_data_on_view_changeプロパティを有効にします
Keycloak がデータベースにデータを書き込まない場合があります 以下を小さくすることができますinfo_writer_sleep_timeinfo_writer_max_writes_after_viewプロパティ値


楽しんで、ユーザーメーリングリスト を使用してこのブログ記事についてどう思うか教えてください。
Sebastian Łaskawiec および Keycloak チーム