Files
document-haness/docs/keycloak-session-store/final/assets/a1-transport-vs-discovery/a1-transport-vs-discovery.alt.md
T

1.4 KiB
Raw Blame History

발견과 전송은 다른 경로다

Alternative text

두 노드가 데이터베이스로는 이어져 있고 TCP 7800 으로는 끊긴 구성. 세션 조회는 살아 있고 무효화 통지는 막힌다.

Long description

노드가 서로를 찾는 경로와 실제로 이야기하는 경로가 다르다. 발견은 PostgreSQL 의 JGROUPS_PING 테이블을 쓰고 전송은 TCP 7800 을 쓴다. 7800 만 막으면 둘 다 데이터베이스에 등록된 채로 남아 서로 존재한다고 믿지만 메시지는 오가지 않는다. 세션은 데이터베이스에 있으므로 교차 노드 refresh 는 200 을 유지하고, 로그아웃 무효화 통지는 7800 을 타므로 400 이어야 할 것이 200 이 된다.

Elements and evidence

  • keycloak-0 (service): 로그아웃을 처리한 노드. Evidence: L485L489.
  • TCP 7800 (channel): 무효화 통지가 지나는 길. NetworkPolicy 로 막았다. Evidence: L491L495.
  • keycloak-1 (service): 통지를 못 받아 세션이 죽은 것을 모른다. Evidence: L485L489.
  • PostgreSQL (datastore): 세션이 여기 있어 7800 과 무관하다. Evidence: L487L490.

Relationships

  • keycloak-0 → TCP 7800: 무효화 통지. Evidence: L487L490.
  • keycloak-1 → PostgreSQL: 세션 SELECT. Evidence: L487L489.
  • TCP 7800 → keycloak-1: 차단. Evidence: L487L490.