
Комментарии 7
Давно работает по схожей схеме, только перед БД тоже стоит балансировщик.
А можете рассказать подробнее про кластерный healthcheck, просто я знаю только “KC_HEALTH_ENABLED=true”?
И infinispan в keycloak поднимается в embedded режиме в любом случае в последних версиях (то ли в 24-ом, то ли в 25-ом так сделали). Можно отдельно прицепить внешний кластер, но можно и без него.
В релизе 26.4 появился “Keycloak cluster health check”. Отдельно включать не нужно, но отображается, если keycloak в режиме кластера, вот issue Detect and handle KC split brain clusters · Issue #41561 · keycloak/keycloak, вот PR Detect and handle KC split brain clusters by pruivo · Pull Request #41730 · keycloak/keycloak
вроде бы свежий keycloak больше не нуждается в infinispan и хранит сессии прямо в базе
Сессии действительно хранятся в БД, но Infinispan остается обязательным: он кэширует эти же сессии и часть данных которые в БД не попадают, например authenticationSessions, loginFailures, actionTokens. Также через реплицируемый кэш work узлы рассылают друг другу инвалидацию локальных кэшей – realms, users, authorization, keys, crl, иначе после изменений на одном узле остальные продолжали бы отдавать устаревшие данные
Как мы настраивали, тестировали и чинили кластер Keycloak на трех виртуальных машинах