เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ‰เฉฑเจคเฉ‡ HA เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉ€เจ•เจฒเฉ‹เจ• เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ‰เฉฑเจคเฉ‡ HA เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉ€เจ•เจฒเฉ‹เจ• เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ

TL; เจกเจพ: เจ‡เฉฑเจฅเฉ‡ เจ•เฉ€เจ•เจฒเฉŒเจ•, เจ‡เฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจเจ•เจธเฉˆเจธ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจธเจฟเจธเจŸเจฎ, เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ, เจธเฉฐเจฐเจšเจจเจพ เจตเฉ‡เจฐเจตเฉ‡ เจฆเจพ เจตเจฐเจฃเจจ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจœเจพเจฃ-เจชเจ›เจพเจฃ เจ…เจคเฉ‡ เจฎเฉเฉฑเจ– เจตเจฟเจšเจพเจฐ

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจ•เฉ€เจ•เจฒเฉŒเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃ เจฒเจˆ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจตเจฟเจšเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡เฅค

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ•เฉ€เจ•เจฒเฉŒเจ• เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจฒเฉ‡เจ– เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจฆเจฟเฉฑเจคเฉ‡ เจฒเจฟเฉฐเจ• เจตเฉ‡เจ–เฉ‹เฅค เจ…เจญเจฟเจ†เจธ เจตเจฟเฉฑเจš เจตเจงเฉ‡เจฐเฉ‡ เจฒเฉ€เจจ เจนเฉ‹เจฃ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ…เจงเจฟเจเจจ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจธเจพเจกเฉ€ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจ‡เฉฑเจ• เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ‡ เจจเจพเจฒ เจœเฉ‹ เจ‡เจธ เจฒเฉ‡เจ– เจฆเฉ‡ เจฎเฉเฉฑเจ– เจตเจฟเจšเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ (เจฒเจพเจ‚เจš เจ—เจพเจˆเจก เจ‰เฉฑเจฅเฉ‡ เจนเฉˆ, เจ‡เจน เจฒเฉ‡เจ– เจกเจฟเจตเจพเจˆเจธ เจ…เจคเฉ‡ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเฉ‡เจ—เจพ, เจฒเจ—เจญเจ— เจ…เจจเฉเจตเจพเจฆเจ•).

เจ•เฉ€เจ•เจฒเฉŒเจ• เจ‡เฉฑเจ• เจตเจฟเจ†เจชเจ• เจธเจฟเจธเจŸเจฎ เจนเฉˆ เจœเฉ‹ Java เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเจฐเจตเจฐ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ เจœเฉฐเจ—เจฒเฉ€ เจฎเฉฑเจ–เฉ€. เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจ‡เจน เจ…เจงเจฟเจ•เจพเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจขเจพเจ‚เจšเจพ เจนเฉˆ เจœเฉ‹ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจซเฉˆเจกเจฐเฉ‡เจธเจผเจจ เจ…เจคเฉ‡ SSO (เจธเจฟเฉฐเจ—เจฒ เจธเจพเจˆเจจ-เจ†เจจ) เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจงเจฟเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจฒเจˆ เจธเฉฑเจฆเจพ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจตเฉˆเจฌเจธเจพเจˆเจŸ เจœ เจตเจฟเจ•เฉ€เจชเฉ€เจกเฉ€เจ† เจตเจฟเจธเจคเฉเจฐเจฟเจค เจธเจฎเจ เจฒเจˆ.

เจ•เฉ€เจ•เจฒเฉŒเจ• เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

Keycloak เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจฆเฉ‹ เจจเจฟเจฐเฉฐเจคเจฐ เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ:

  • เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฅเจพเจชเจค เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจœเจพเจฃเจ•เจพเจฐเฉ€
  • เจกเฉˆเจŸเจพเจ—เฉเจฐเจฟเจก เจ•เฉˆเจธเจผ, เจœเฉ‹ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เฉˆเจธเจผ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจจเจพเจฒ เจนเฉ€ เจ•เฉเจ เจฅเฉ‹เฉœเฉเจนเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ…เจคเฉ‡ เจ…เจ•เจธเจฐ เจฌเจฆเจฒเจฃ เจตเจพเจฒเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจธเจผเจจเฅค เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ‡เจจเจซเจฟเจจเจฟเจธเจชเฉˆเจจ, เจœเฉ‹ เจ•เจฟ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจจเจพเจฒเฉ‹เจ‚ เจ•เจพเจซเจผเฉ€ เจคเฉ‡เจœเจผ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจชเจฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ‡เจจเจซเจฟเจจเจฟเจธเจชเฉˆเจจ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจกเฉ‡เจŸเจพ เจฅเฉ‹เฉœเฉเจนเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจนเฉเฉฐเจฆเจพ เจนเฉˆ - เจ…เจคเฉ‡ เจœเจฆเฉ‹เจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฟเจคเฉ‡ เจตเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ•เฉ€เจ•เจฒเฉŒเจ• เจšเจพเจฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจฎเฉ‹เจกเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ:

  • เจ†เจฎ - เจ‡เฉฑเจ• เจ…เจคเฉ‡ เจ•เฉ‡เจตเจฒ เจ‡เฉฑเจ• เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†, เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฆเฉเจ†เจฐเจพ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเฉ€ เจ—เจˆ standalone.xml
  • เจจเจฟเจฏเจฎเจค เจ•เจฒเฉฑเจธเจŸเจฐ (เจ‰เฉฑเจš เจ‰เจชเจฒเจฌเจงเจคเจพ เจตเจฟเจ•เจฒเจช) - เจธเจพเจฐเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ•เฉ‹ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฆเจธเจคเฉ€ เจธเจฎเจ•เจพเจฒเฉ€ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ standalone-ha.xml, เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฒเฉ‹เจก เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจคเฉฑเจ• เจธเจพเจ‚เจเฉ€ เจชเจนเฉเฉฐเจš เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
  • เจกเฉ‹เจฎเฉ‡เจจ เจ•เจฒเฉฑเจธเจŸเจฐ โ€” เจ†เจฎ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจ•เจฒเฉฑเจธเจŸเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ เจ‡เฉฑเจ• เจฐเฉเจŸเฉ€เจจ เจ…เจคเฉ‡ เจฌเฉ‹เจฐเจฟเฉฐเจ— เจ•เฉฐเจฎ เจฌเจฃ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจงเจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจนเจฐ เจตเจพเจฐ เจธเฉฐเจฐเจšเจจเจพ เจฌเจฆเจฒเจฆเฉ€ เจนเฉˆ, เจนเจฐ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจก เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจฃเฉ€เจ†เจ‚ เจšเจพเจนเฉ€เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจธเฉฐเจšเจพเจฒเจจ เจฆเจพ เจกเฉ‹เจฎเฉ‡เจจ เจฎเฉ‹เจก เจ•เฉเจ เจธเจพเจ‚เจเจพ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจฅเจพเจจ เจธเจฅเจพเจชเจค เจ•เจฐเจ•เฉ‡ เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจจเจพ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจ•เฉ‡ เจ‡เจธ เจฎเฉเฉฑเจฆเฉ‡ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ domain.xml
  • เจกเจพเจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ โ€” เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ•เจˆ เจกเจพเจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจฆเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ•เฉ€เจ•เจฒเฉ‹เจ• เจšเจฒเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจ…เจ•เจธเจฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจญเฉ‚เจ—เฉ‹เจฒเจฟเจ• เจธเจฅเจพเจจเจพเจ‚ เจตเจฟเฉฑเจšเฅค เจ‡เจธ เจตเจฟเจ•เจฒเจช เจตเจฟเฉฑเจš, เจนเจฐเฉ‡เจ• เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐ เจฆเจพ เจ•เฉ€เจ•เจฒเฉŒเจ• เจธเจฐเจตเจฐเจพเจ‚ เจฆเจพ เจ†เจชเจฃเจพ เจ•เจฒเฉฑเจธเจŸเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจš เจ…เจธเฉ€เจ‚ เจฆเฉ‚เจœเฉ‡ เจตเจฟเจ•เจฒเจช 'เจคเฉ‡ เจตเจฟเจธเจฅเจพเจฐ เจจเจพเจฒ เจตเจฟเจšเจพเจฐ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจฏเจพเจจเฉ€ เจจเจฟเจฏเจฎเจค เจ•เจฒเฉฑเจธเจŸเจฐ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจตเฉ€ เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจ›เฉ‚เจน เจฒเจตเจพเจ‚เจ—เฉ‡, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจ‡เจนเจจเจพเจ‚ เจฆเฉ‹ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ เจธเจฎเจเจฆเจพเจฐ เจนเฉˆเฅค เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจ•เจˆ เจชเฉŒเจกเจพเจ‚ (เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจก) เจฆเฉ€เจ†เจ‚ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจธเจฎเฉฑเจธเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจกเฉ‹เจฎเฉ‡เจจ เจ•เจฒเฉฑเจธเจŸเจฐ เจ‡เจน เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจฎเฉเจธเจผเจ•เจฒ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจ‡เจน เจตเฉ€ เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจงเจฟเจ†เจจ เจฆเจฟเจ“ เจ•เจฟ เจธเจผเจฌเจฆ เจ•เจฒเฉฑเจธเจŸเจฐ เจฌเจพเจ•เฉ€ เจฆเฉ‡ เจฒเฉ‡เจ– เจฒเจˆ เจธเจฟเจฐเจซเจผ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจกเจพเจ‚ เจฆเฉ‡ เจธเจฎเฉ‚เจน 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ‡เจฃ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจฐเฉˆเจ—เฉ‚เจฒเจฐ เจ•เฉ€เจ•เจฒเฉŒเจ• เจ•เจฒเฉฑเจธเจŸเจฐ

เจ‡เจธ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉ€เจ•เจฒเฉŒเจ• เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจนเฉˆ:

  • เจฌเจพเจนเจฐเฉ€ เจธเจพเจ‚เจเจพ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเฉ‹
  • เจฒเฉ‹เจก เจฌเฉˆเจฒเฉˆเจ‚เจธเจฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹
  • IP เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจธเจฎเจฐเจฅเจจ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจนเฉˆ

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจพเจนเจฐเฉ€ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจšเจฐเจšเจพ เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจ‰เจฆเฉ‡เจธเจผ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจšเจฒเฉ‹ เจ‡เจน เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจ•เจฟเจคเฉ‡ เจ‡เฉฑเจ• เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเจพ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจนเฉˆ - เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เจธเจฆเจพ เจ‡เฉฑเจ• เจ•เจจเฉˆเจ•เจธเจผเจจ เจชเฉเจ†เจ‡เฉฐเจŸ เจนเฉˆ. เจ…เจธเฉ€เจ‚ เจฌเจธ เจ‡เจธ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจพเจ‚เจ—เฉ‡เฅค

เจซเฉ‡เจฒเจ“เจตเจฐ (HA) เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš Keycloak เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจเจฃ เจฒเจˆ, เจ‡เจน เจœเจพเจฃเจจเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเจญ เจตเจพเจˆเจฒเจกเจซเจฒเจพเจˆ เจฆเฉ€เจ†เจ‚ เจ•เจฒเฉฑเจธเจŸเจฐเจฟเฉฐเจ— เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ 'เจคเฉ‡ เจ•เจฟเฉฐเจจเจพ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจตเจพเจˆเจฒเจกเจซเจฒเจพเจˆ เจ•เจˆ เจ‰เจช-เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจฌเฉˆเจฒเฉˆเจ‚เจธเจฐ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ•เฉเจ เจจเฉเจ•เจธ เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจฒเจˆเฅค เจฒเฉ‹เจก เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ‰เจชเจฒเจฌเจงเจคเจพ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจก เจ“เจตเจฐเจฒเฉ‹เจก เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจจเฉเจ•เจธ เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ‰เจชเจฒเจฌเจงเจคเจพ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจญเจพเจตเฉ‡เจ‚ เจ•เฉเจ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจก เจซเฉ‡เจฒ เจนเฉ‹ เจœเจพเจฃเฅค เจ‡เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจ‰เจช-เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚:

  • mod_cluster: เจ…เจชเจพเจšเฉ‡ เจฆเฉ‡ เจจเจพเจฒ HTTP เจฒเฉ‹เจก เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจนเฉ‹เจธเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฒเจˆ TCP เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจฌเจพเจนเจฐเฉ€ เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจจเจพเจฒ เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ.

  • infinispan: เจ‡เฉฑเจ• เจŸเฉเจฐเจพเจ‚เจธเจชเฉ‹เจฐเจŸ เจฒเฉ‡เจ…เจฐ เจตเจœเฉ‹เจ‚ JGroups เจšเฉˆเจจเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ‡เฉฑเจ• เจตเฉฐเจกเจฟเจ† เจ•เฉˆเจธเจผเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจ•เฉˆเจธเจผ เจธเจฎเฉฑเจ—เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเจจ เจฒเจˆ เจฌเจพเจนเจฐเฉ€ เจ‡เจจเจซเจฟเจจเจฟเจธเจชเฉˆเจจ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเจพเจฒ เจธเฉฐเจšเจพเจฐ เจ•เจฐเจจ เจฒเจˆ เจนเฉŒเจŸเจฐเฉ‹เจก เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค

  • jgroups: JGroups เจšเฉˆเจจเจฒเจพเจ‚ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค เจ‰เฉฑเจš เจ‰เจชเจฒเจฌเจง เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฒเจˆ เจธเจฎเฉ‚เจน เจธเฉฐเจšเจพเจฐ เจธเจนเจพเจ‡เจคเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจจเจพเจฎ เจตเจพเจฒเฉ€เจ†เจ‚ เจชเจพเจˆเจชเจพเจ‚ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเฉ‚เจนเจพเจ‚ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจคเจพเจ‚ เจœเฉ‹ เจธเฉฐเจšเจพเจฐ เจตเจฟเฉฑเจš เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ—เจคเจพ, เจตเจฟเจตเจธเจฅเจฟเจคเจคเจพ เจ…เจคเฉ‡ เจ…เจธเจซเจฒเจคเจพเจตเจพเจ‚ เจชเฉเจฐเจคเฉ€ เจธเฉฐเจตเฉ‡เจฆเจจเจธเจผเฉ€เจฒเจคเจพ เจตเจฐเจ—เฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเฉ‹เจฃเฅค

เจฒเฉ‹เจก เจฌเฉˆเจฒเฉˆเจ‚เจธเจฐ

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเฉเจฐเจตเฉ‡เจธเจผ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจ‡เฉฑเจ• เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจ—เฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ:

Keycloak เจ‡เจน เจฎเฉฐเจจเจฆเจพ เจนเฉˆ เจ•เจฟ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจธเจฐเจตเจฐ เจจเจพเจฒ HTTP เจฐเจพเจนเฉ€เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเจพ เจฐเจฟเจฎเฉ‹เจŸ เจชเจคเจพ เจ•เจฒเจพเจ‡เฉฐเจŸ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจฆเจพ เจ…เจธเจฒ IP เจชเจคเจพ เจนเฉˆเฅค เจฌเฉˆเจฒเฉˆเจ‚เจธเจฐ เจ…เจคเฉ‡ เจ‡เจจเจ—เจฐเฉ‡เจธ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ HTTP เจธเจฟเจฐเจฒเฉ‡เจ–เจพเจ‚ เจจเฉ‚เฉฐ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ X-Forwarded-For ะธ X-Forwarded-Proto, เจ…เจคเฉ‡ เจ…เจธเจฒเฉ€ เจธเจฟเจฐเจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจตเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเฉ‹ HOST. เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ ingress-nginx (>0.22.0) เจ‡เจธ เจจเฉ‚เฉฐ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจฏเฉ‹เจ— เจ•เจฐเจฆเจพ เจนเฉˆ

เจซเจฒเฉˆเจ— เจจเฉ‚เฉฐ เจธเจฐเจ—เจฐเจฎ เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ proxy-address-forwarding เจ‡เฉฑเจ• เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡ PROXY_ADDRESS_FORWARDING ะฒ true เจ•เฉ€เจ•เจฒเฉ‹เจ• เจจเฉ‚เฉฐ เจ‡เจน เจธเจฎเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจตเฉ€ เจฏเฉ‹เจ— เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจธเจŸเจฟเฉฑเจ•เฉ€ เจธเฉˆเจธเจผเจจ เจชเฉเจฐเจตเฉ‡เจธเจผ เจตเจฟเฉฑเจš. เจ•เฉ€เจ•เจฒเฉŒเจ• เจตเจฐเจคเจฎเจพเจจ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจธเฉˆเจธเจผเจจ เจ…เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจธเจผเจจ เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจคเจฐเจฟเจค เจ‡เจจเจซเจฟเจจเจฟเจธเจชเฉˆเจจ เจ•เฉˆเจธเจผ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ•เฉˆเจš เจกเจฟเจซเฉŒเจฒเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจฎเจพเจฒเจ• เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจฆเฉ‚เจœเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจตเจฟเฉฑเจš, เจ‰เจน เจ–เจพเจธ เจธเฉˆเจธเจผเจจ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ•เฉเจ เจจเฉ‹เจก 'เจคเฉ‡ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเฉ‡ เจจเฉ‹เจกเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจคเฉ‹เจ‚ เจฐเจฟเจฎเฉ‹เจŸ เจคเฉ‹เจ‚ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจธ เจธเฉˆเจธเจผเจจ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡, เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจฆเฉ‡ เจ‰เจฒเจŸ, เจ•เฉ‚เจ•เฉ€ เจจเจพเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจธเฉˆเจธเจผเจจ เจœเฉ‹เฉœเจจเจพ เจธเจพเจกเฉ‡ เจฒเจˆ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ AUTH_SESSION_ID. เจ•เฉ€เจ•เจฒเฉ‹เจ• เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจฒเฉ‚เจช เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ…เจธเฉ€เจ‚ เจธเจŸเจฟเฉฑเจ•เฉ€ เจธเฉˆเจธเจผเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจ•เฉ‚เจ•เฉ€ เจจเจพเจฎ เจšเฉเจฃเจจ เจฆเฉ€ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ•เฉ€เจ•เจฒเฉ‹เจ• เจจเฉ‹เจก เจฆเจพ เจจเจพเจฎ เจตเฉ€ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ เจœเจฟเจธ เจจเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจœเจตเจพเจฌ เจฆเจฟเฉฑเจคเจพ เจธเฉ€ AUTH_SESSION_ID, เจ…เจคเฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เฉฑเจš เจ‰เจชเจฒเจฌเจง เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจนเจฐเฉ‡เจ• เจจเฉ‹เจก เจ‡เฉฑเจ•เฉ‹ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐเฉ‡เจ• เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจฆเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจ…เจคเฉ‡ เจตเจฟเจฒเฉฑเจ–เจฃ เจจเฉ‹เจก เจชเจ›เจพเจฃเจ•เจฐเจคเจพเฅค เจตเจฟเฉฑเจš เจชเจพเจ‰เจฃ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ JAVA_OPTS เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ jboss.node.name ะธ jboss.tx.node.id เจนเจฐเฉ‡เจ• เจจเฉ‹เจก เจฒเจˆ เจตเจฟเจฒเฉฑเจ–เจฃ - เจคเฉเจธเฉ€เจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉŒเจก เจฆเจพ เจจเจพเจฎ เจชเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจชเฉŒเจก เจจเจพเจฎ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ jboss เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฒเจˆ 23 เจ…เฉฑเจ–เจฐ เจธเฉ€เจฎเจพ เจฌเจพเจฐเฉ‡ เจจเจพ เจญเฉเฉฑเจฒเฉ‹, เจ‡เจธ เจฒเจˆ เจกเจฟเจชเจฒเจพเจ‡เจฎเฉˆเจ‚เจŸ เจฆเฉ€ เจฌเจœเจพเจ เจธเจŸเฉ‡เจŸเจซเฉเจฒเจธเฉˆเฉฑเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจฌเจฟเจนเจคเจฐ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจฐเฉ‡เจ• - เจœเฉ‡ เจชเฉŒเจก เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‡เจ† เจœเจพเจ‚ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจฆเจพ เจ•เฉˆเจธเจผ เจ–เจคเจฎ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ. เจ‡เจธ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ, เจธเจพเจฐเฉ‡ เจ•เฉˆเจšเจพเจ‚ เจฒเจˆ เจ•เฉˆเจธเจผ เจฎเจพเจฒเจ•เจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจจเฉ‚เฉฐ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจฆเฉ‹ เจคเฉฑเจ• เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉˆ, เจคเจพเจ‚ เจœเฉ‹ เจ•เฉˆเจธเจผ เจฆเฉ€ เจ‡เฉฑเจ• เจ•เจพเจชเฉ€ เจฌเจฃเฉ€ เจฐเจนเฉ‡เฅค เจนเฉฑเจฒ เจšเฉฑเจฒเจฃเจพ เจนเฉˆ เจตเจพเจˆเจฒเจกเจซเจฒเจพเจˆ เจฒเจˆ เจธเจ•เฉเจฐเจฟเจชเจŸ เจชเฉŒเจก เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เจธเจจเฉ‚เฉฐ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เฉ‹ /opt/jboss/startup-scripts เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš:

เจธเจ•เฉเจฐเจฟเจชเจŸ เจธเจฎเฉฑเจ—เจฐเฉ€

embed-server --server-config=standalone-ha.xml --std-out=echo
batch

echo * Setting CACHE_OWNERS to "${env.CACHE_OWNERS}" in all cache-containers

/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=authenticationSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})

run-batch
stop-embedded-server

เจซเจฟเจฐ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเจพ เจฎเฉเฉฑเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹ CACHE_OWNERS เจฒเฉ‹เฉœ เจฒเจˆ.

IP เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจธเจฎเจฐเจฅเจจ เจฆเฉ‡ เจจเจพเจฒ เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจจเฉˆเฉฑเจŸเจตเจฐเจ•

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเฉ€เจเจจเจ†เจˆ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเฉ‡เจตเจจเฉ‡เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจคเฉเจฐเฉฐเจค เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ - เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจกเจธ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเฉ‚เฉฐ เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ เจ‰เจน เจฒเจพเจ‚เจš เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡, เจฆเฉ‡เจ–เจฃเจ—เฉ‡เฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจคเฉเจนเจพเจกเฉ‡ Kubernetes เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš ip เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจธเจฎเจฐเจฅเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจจเฉ‹เจกเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฒเจˆ เจนเฉ‹เจฐ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ JGroups เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจชเจนเจฟเจฒเจพ เจตเจฟเจ•เจฒเจช เจตเจฐเจคเจฃเจพ เจนเฉˆ KUBE_DNSเจœเฉ‹ เจตเจฐเจคเจฆเจพ เจนเฉˆ headless service เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจกเจธ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจฌเจธ JGroups เจจเฉ‚เฉฐ เจธเฉ‡เจตเจพ เจฆเจพ เจจเจพเจฎ เจชเจพเจธ เจ•เจฐเฉ‹ เจœเฉ‹ เจจเฉ‹เจกเจธ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฒเจˆ เจตเจฐเจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจตเจฟเจ•เจฒเจช เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ KUBE_PING, เจœเฉ‹ เจ•เจฟ เจจเฉ‹เจกเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจฒเจˆ API เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ (เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ serviceAccount เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ list ะธ get, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจชเฉŒเจกเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเฉ‹ serviceAccount).

JGroups เจฆเฉเจ†เจฐเจพ เจจเฉ‹เจก เจฒเฉฑเจญเจฃ เจฆเจพ เจคเจฐเฉ€เจ•เจพ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ JGROUPS_DISCOVERY_PROTOCOL ะธ JGROUPS_DISCOVERY_PROPERTIES. เจฒเจˆ KUBE_PING เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉเฉฑเจ› เจ•เฉ‡ เจชเฉŒเจก เจšเฉเจฃเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ namespace ะธ labels.

๏ธ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจฆเฉ‹ เจœเจพเจ‚ เจตเฉฑเจง เจ•เฉ€เจ•เจฒเฉŒเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹ (เจ†เจ“ เจ‡เฉฑเจ• เจจเฉ‚เฉฐ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจ•เจนเฉ€เจเฅค production, เจฆเฉ‚เจœเจพ - staging) - เจ‡เฉฑเจ• เจ•เฉ€เจ•เจฒเฉŒเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจจเฉ‹เจก เจฆเฉ‚เจœเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡ เจนเจฐเฉ‡เจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจฒเฉฑเจ–เจฃ เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจชเจคเจพ เจตเจฐเจคเจฃเจพ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ“jboss.default.multicast.address ะธ jboss.modcluster.multicast.address ะฒ JAVA_OPTS.

เจกเจพเจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ‰เฉฑเจคเฉ‡ HA เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉ€เจ•เจฒเฉ‹เจ• เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ

เจ•เจจเฉˆเจ•เจŸเฉ€เจตเจฟเจŸเฉ€

Keycloak เจนเจฐเฉ‡เจ• เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐ เจฒเจˆ เจฎเจฒเจŸเฉ€เจชเจฒ เจตเฉฑเจ–เจฐเฉ‡ เจ‡เจจเจซเจฟเจจเจฟเจธเจชเฉˆเจจ เจ•เฉˆเจธเจผ เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจกเจพเจ‚ เจฆเฉ‡ เจฌเจฃเฉ‡ เจ•เฉ€เจ•เจฒเฉŒเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจธเจฅเจฟเจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจชเจฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจกเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจ…เฉฐเจคเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ.

เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจก เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจธเฉฐเจšเจพเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจฌเจพเจนเจฐเฉ€ เจœเจพเจตเจพ เจกเฉ‡เจŸเจพ เจ—เจฐเจฟเฉฑเจก (เจ‡เจจเจซเจฟเจจเจฟเจธเจชเฉˆเจจ เจธเจฐเจตเจฐ) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจธเฉฐเจšเจพเจฐ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ Infinispan HotRod.

Infinispan เจ•เฉˆเจšเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเจพเจฒ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ remoteStore, เจคเจพเจ‚ เจœเฉ‹ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฐเจฟเจฎเฉ‹เจŸเจฒเฉ€ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เฉ‡ (เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐ เจตเจฟเฉฑเจš, เจฒเจ—เจญเจ— เจ…เจจเฉเจตเจพเจฆเจ•) เจ•เฉˆเจธเจผ. JDG เจธเจฐเจตเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฑเจ–เจฐเฉ‡ เจ‡เจจเจซเจฟเจจเจฟเจธเจชเฉˆเจจ เจ•เจฒเฉฑเจธเจŸเจฐ เจนเจจ, เจคเจพเจ‚ เจœเฉ‹ เจธเจพเจˆเจŸ 'เจคเฉ‡ JDG1 'เจคเฉ‡ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจกเจพเจŸเจพ site1 เจธเจพเจˆเจŸ 'เจคเฉ‡ JDG2 เจจเฉ‚เฉฐ เจฆเฉเจนเจฐเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพ site2.

เจ…เจคเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจตเจพเจฒเจพ JDG เจธเจฐเจตเจฐ เจ•เจฒเจพเจ‡เฉฐเจŸ เจ•เฉเจจเฉˆเจ•เจธเจผเจจเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ‡เจธเจฆเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจ•เฉ€เจ•เจฒเฉŒเจ• เจธเจฐเจตเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉ‚เจšเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ HotRod เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจนเฉˆเฅค เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจก เจšเจพเจฒเฉ‚ site2 เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ Infinispan เจ•เฉˆเจšเจพเจ‚ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ–เจพเจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจธเจผเจจ เจ•เฉ€เจ•เจฒเฉ‹เจ• เจจเฉ‹เจก 'เจคเฉ‡ เจตเฉ€ เจ‰เจชเจฒเจฌเจง เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ site2.

เจ•เฉเจ เจ•เฉˆเจšเจพเจ‚ เจฒเจˆ, เจฌเฉˆเจ•เจ…เฉฑเจช เจจเจพ เจฒเฉˆเจฃเจพ เจ…เจคเฉ‡ Infinispan เจธเจฐเจตเจฐ เจฆเฉเจ†เจฐเจพ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจพเจฒ เจกเจพเจŸเจพ เจฒเจฟเจ–เจฃ เจคเฉ‹เจ‚ เจฌเจšเจฃเจพ เจตเฉ€ เจธเฉฐเจญเจต เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉˆเจŸเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ remote-store เจ–เจพเจธ Infinispan เจ•เฉˆเจธเจผ (เจซเจพเจ‡เจฒ เจตเจฟเฉฑเจš standalone-ha.xml), เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เฉเจ เจ–เจพเจธ replicated-cache Infinispan เจธเจฐเจตเจฐ เจธเจพเจˆเจก 'เจคเฉ‡ เจตเฉ€ เจนเฉเจฃ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค

เจ•เฉˆเจš เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ

เจ•เฉ€เจ•เจฒเฉ‹เจ• เจตเจฟเฉฑเจš เจฆเฉ‹ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจ•เฉˆเจš เจนเจจ:

  • เจธเจฅเจพเจจเจ•. เจ‡เจน เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ เจ…เฉฑเจ—เฉ‡ เจธเจฅเจฟเจค เจนเฉˆ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ 'เจคเฉ‡ เจฒเฉ‹เจก เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจœเจตเจพเจฌ เจฆเฉ‡ เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฒเจˆ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเจพ เจ•เฉˆเจธเจผ เจ–เฉ‡เจคเจฐ, เจ•เจฒเจพเจ‡เฉฐเจŸเจธ, เจฐเฉ‹เจฒ เจ…เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจฆเฉเจนเจฐเจพเจ‡เจ† เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจ•เฉˆเจธเจผ เจ•เฉ€เจ•เจฒเฉ‹เจ…เจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจนเฉ‹เจตเฉ‡เฅค เจœเฉ‡เจ•เจฐ เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจเจ‚เจŸเจฐเฉ€ เจฌเจฆเจฒ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจฌเจพเจ•เฉ€ เจธเจฐเจตเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจคเจฌเจฆเฉ€เจฒเฉ€ เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจญเฉ‡เจœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจเจ‚เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฌเจพเจนเจฐ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจตเฉ‡เจฐเจตเจพ เจตเฉ‡เจ–เฉ‹ work เจตเจฟเจงเฉ€ เจฆเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเจฐเจฃเจจ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเฉ‡เจ–เฉ‹เฅค

  • เจฆเฉเจนเจฐเจพเจ‡เจ†เฅค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจธเจผเจจเจพเจ‚, เจ”เจซเจฒเจพเจˆเจจ เจŸเฉ‹เจ•เจจเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจชเจพเจธเจตเจฐเจก เจซเจฟเจธเจผเจฟเฉฐเจ— เจ•เฉ‹เจธเจผเจฟเจธเจผเจพเจ‚ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจนเจฎเจฒเจฟเจ†เจ‚ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆ เจฒเฉŒเจ—เจ‡เจจ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจนเจจเจพเจ‚ เจ•เฉˆเจšเจพเจ‚ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจกเฉ‡เจŸเจพ เจ…เจธเจฅเจพเจˆ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจธเจฟเจฐเจซเจผ RAM เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจฆเฉเจนเจฐเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

Infinispan เจ•เฉˆเจธเจผ

เจธเฉˆเจธเจผเจจ - เจ•เฉ€เจ•เจฒเฉ‹เจ• เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉฐเจ•เจฒเจช, เจตเฉฑเจ–เจฐเฉ‡ เจ•เฉˆเจš เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ authenticationSessions, เจ–เจพเจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจนเจจเจพเจ‚ เจ•เฉˆเจšเจพเจ‚ เจคเฉ‹เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจ…เจคเฉ‡ เจ•เฉ€เจ•เจฒเฉŒเจ• เจธเจฐเจตเจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจจเจพ เจ•เจฟ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉเจ†เจฐเจพเฅค เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจธเจŸเจฟเฉฑเจ•เฉ€ เจธเฉˆเจธเจผเจจเจพเจ‚ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐเจคเจพ เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจœเจฟเจนเฉ‡ เจ•เฉˆเจšเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจฆเฉเจนเจฐเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจ•เจฟ เจเจ•เจŸเจฟเจต-เจเจ•เจŸเจฟเจต เจฎเฉ‹เจก เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš.

เจเจ•เจธเจผเจจ เจŸเฉ‹เจ•เจจ. เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเฉฐเจ•เจฒเจช, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจฆเฉเจฐเจฟเจธเจผเจพเจ‚ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจกเจพเจ• เจฐเจพเจนเฉ€เจ‚ เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉเจ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ forget password เจ•เฉˆเจš actionTokens เจธเฉฐเจฌเฉฐเจงเจฟเจค เจŸเฉ‹เจ•เจจเจพเจ‚ เจฆเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจŸเจฐเฉˆเจ• เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ - เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจŸเฉ‹เจ•เจจ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจตเจฐเจคเจฟเจ† เจœเจพ เจšเฉเฉฑเจ•เจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจธเจฐเจ—เจฐเจฎ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเจพเจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจฆเฉเจนเจฐเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ•เฉˆเจšเจฟเฉฐเจ— เจ…เจคเฉ‡ เจฌเฉเจขเจพเจชเจพ เจกเจพเจŸเจพเจฌเฉ‡เจธ 'เจคเฉ‡ เจฒเฉ‹เจก เจจเฉ‚เฉฐ เจฆเฉ‚เจฐ เจ•เจฐเจจ เจฒเจˆ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ. เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ€ เจ•เฉˆเจšเจฟเฉฐเจ— เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจ‡เฉฑเจ• เจธเจชเฉฑเจธเจผเจŸ เจธเจฎเฉฑเจธเจฟเจ† เจœเฉ‹เฉœเจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• Keycloak เจธเจฐเจตเจฐ เจกเจพเจŸเจพ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฆเฉ‚เจœเฉ‡ เจธเจฐเจตเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉ‚เจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ‰เจน เจ†เจชเจฃเฉ‡ เจ•เฉˆเจš เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐ เจธเจ•เจฃเฅค เจ•เฉ€เจ•เจฒเฉŒเจ• เจธเจฅเจพเจจเจ• เจ•เฉˆเจšเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ realms, users ะธ authorization เจกเจพเจŸเจพเจฌเฉ‡เจธ เจคเฉ‹เจ‚ เจกเจพเจŸเจพ เจ•เฉˆเจธเจผ เจ•เจฐเจจ เจฒเจˆเฅค

เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจ•เฉˆเจธเจผ เจตเฉ€ เจนเฉˆ work, เจœเฉ‹ เจธเจพเจฐเฉ‡ เจกเจพเจŸเจพ เจ•เฉ‡เจ‚เจฆเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจฆเฉเจนเจฐเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจคเฉ‹เจ‚ เจ•เฉ‹เจˆ เจกเฉ‡เจŸเจพ เจธเจŸเฉ‹เจฐ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจกเจพเจ‚ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ‰เจฎเจฐ เจฌเจพเจฐเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผ เจญเฉ‡เจœเจฃ เจฒเจˆ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฆเฉ‚เจœเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจตเจฟเฉฑเจš, เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ เจกเฉ‡เจŸเจพ เจ…เฉฑเจชเจกเฉ‡เจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจก เจ†เจชเจฃเฉ‡ เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐ เจตเจฟเฉฑเจš เจฆเฉ‚เจœเฉ‡ เจจเฉ‹เจกเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจฆเฉ‚เจœเฉ‡ เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจจเฉ‹เจกเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจนเจฐเฉ‡เจ• เจจเฉ‹เจก เจ†เจชเจฃเฉ‡ เจธเจฅเจพเจจเจ• เจ•เฉˆเจšเจพเจ‚ เจตเจฟเฉฑเจš เจธเฉฐเจฌเฉฐเจงเจฟเจค เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจธเจผเจจ. เจจเจพเจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉˆเจธเจผ sessions, clientSessions, offlineSessions ะธ offlineClientSessions, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเจพเจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจฆเฉเจนเจฐเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจธเจผเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจกเจพเจŸเจพ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจธเฉ‡เจตเจพ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจนเฉ‹เจฃ เจฆเฉŒเจฐเจพเจจ เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‡เจน เจ•เฉˆเจš เจ…เฉฐเจคเจฎ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจคเฉ‹เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— HTTP เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ‡เจธเจฒเจˆ เจ‰เจน เจธเจŸเจฟเฉฑเจ•เฉ€ เจธเฉˆเจธเจผเจจเจพเจ‚ เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจนเฉ‹เจ เจนเจจ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพ เจธเฉˆเจ‚เจŸเจฐเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจฆเฉเจนเจฐเจพเจ‡เจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจตเจนเจฟเจธเจผเฉ€ เจซเฉ‹เจฐเจธ เจธเฉเจฐเฉฑเจ–เจฟเจ†. เจ•เฉˆเจธเจผ loginFailures เจฒเฉŒเจ—เจ‡เจจ เจ—เจฒเจคเฉ€ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจŸเจฐเฉˆเจ• เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‡ เจ•เจฟเฉฐเจจเฉ€ เจตเจพเจฐ เจ—เจฒเจค เจชเจพเจธเจตเจฐเจก เจฆเจพเจ–เจฒ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ‡เจธ เจ•เฉˆเจธเจผ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจเจพ เจชเฉเจฐเจฌเฉฐเจงเจ• เจฆเฉ€ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐเฉ€ เจนเฉˆเฅค เจชเจฐ เจ‡เฉฑเจ• เจธเจนเฉ€ เจ—เจฃเจจเจพ เจฒเจˆ, เจ‡เจน เจกเจพเจŸเจพ เจ•เฉ‡เจ‚เจฆเจฐเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจธเจฐเจ—เจฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉˆ. เจชเจฐ เจฆเฉ‚เจœเฉ‡ เจชเจพเจธเฉ‡, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจจเจ•เจฒ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เจฐเฉ‹เจ—เฉ‡, เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ‡เจน เจฎเฉเฉฑเจฆเจพ เจชเฉˆเจฆเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• Infinispan เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐ เจฐเฉ‹เจฒ เจ†เจŠเจŸ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉˆเจŸเจฟเฉฐเจ—เจœเจผ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ•เฉˆเจธเจผ เจชเจฐเจฟเจญเจพเจธเจผเจพเจตเจพเจ‚ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ:

<replicated-cache-configuration name="keycloak-sessions" mode="ASYNC" start="EAGER" batching="false">
</replicated-cache-configuration>

<replicated-cache name="work" configuration="keycloak-sessions" />
<replicated-cache name="sessions" configuration="keycloak-sessions" />
<replicated-cache name="offlineSessions" configuration="keycloak-sessions" />
<replicated-cache name="actionTokens" configuration="keycloak-sessions" />
<replicated-cache name="loginFailures" configuration="keycloak-sessions" />
<replicated-cache name="clientSessions" configuration="keycloak-sessions" />
<replicated-cache name="offlineClientSessions" configuration="keycloak-sessions" />

เจ•เฉ€เจ•เจฒเฉŒเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจจเจซเจฟเจจเจฟเจธเจชเฉˆเจจ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจ…เจคเฉ‡ เจšเจพเจฒเฉ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ

เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ remoteStore เจ•เฉ€เจ•เจฒเฉŒเจ• เจ•เฉˆเจธเจผเจพเจ‚ เจฒเจˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจ•เจพเจซเจผเฉ€ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจชเจฟเจ›เจฒเฉ‡ เจ‡เฉฑเจ• เจตเจพเจ‚เจ— เจนเฉ€ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ CACHE_OWNERS, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเฉ‡เจต เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ /opt/jboss/startup-scripts:

เจธเจ•เฉเจฐเจฟเจชเจŸ เจธเจฎเฉฑเจ—เจฐเฉ€

embed-server --server-config=standalone-ha.xml --std-out=echo
batch

echo *** Update infinispan subsystem ***
/subsystem=infinispan/cache-container=keycloak:write-attribute(name=module, value=org.keycloak.keycloak-model-infinispan)

echo ** Add remote socket binding to infinispan server **
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-cache:add(host=${remote.cache.host:localhost}, port=${remote.cache.port:11222})

echo ** Update replicated-cache work element **
/subsystem=infinispan/cache-container=keycloak/replicated-cache=work/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=work, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)

/subsystem=infinispan/cache-container=keycloak/replicated-cache=work:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache sessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=sessions, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache offlineSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=offlineSessions, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache clientSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=clientSessions, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache offlineClientSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=offlineClientSessions, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache loginFailures element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=loginFailures, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache actionTokens element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    cache=actionTokens, 
    remote-servers=["remote-cache"], 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache authenticationSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=authenticationSessions:write-attribute(name=statistics-enabled,value=true)

echo *** Update undertow subsystem ***
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=proxy-address-forwarding,value=true)

run-batch
stop-embedded-server

เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ เจจเจพ เจญเฉเฉฑเจฒเฉ‹ JAVA_OPTS HotRod เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ•เฉ€เจ•เจฒเฉŒเจ• เจจเฉ‹เจกเจธ เจฒเจˆ: remote.cache.host, remote.cache.port เจ…เจคเฉ‡ เจธเฉ‡เจตเจพ เจฆเจพ เจจเจพเจฎ jboss.site.name.

เจฒเจฟเฉฐเจ• เจ…เจคเฉ‡ เจตเจพเจงเฉ‚ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ

เจฒเฉ‡เจ– เจฆเจพ เจ…เจจเฉเจตเจพเจฆ เจ…เจคเฉ‡ เจ•เจฐเจฎเจšเจพเจฐเฉ€เจ†เจ‚ เจฆเฉเจ†เจฐเจพ เจนเฉˆเจฌเจฐ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ เจเฉเฉฑเจ—เฉ€ เจธเจฟเจ–เจฒเจพเจˆ เจ•เฉ‡เจ‚เจฆเจฐ โ€” เจ…เจญเจฟเจ†เจธ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจฎเจพเจนเจฐเจพเจ‚ (เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ, เจฆเฉ‡เจตเจ“เจชเจธ, เจกเฉŒเจ•เจฐ, เจœเจตเจพเจฌเจฆเฉ‡เจน, เจธเฉ‡เจซ, เจเจธเจ†เจฐเจˆ) เจคเฉ‹เจ‚ เจคเฉ€เจฌเจฐ เจ•เฉ‹เจฐเจธ, เจตเฉ€เจกเฉ€เจ“ เจ•เฉ‹เจฐเจธ เจ…เจคเฉ‡ เจ•เจพเจฐเจชเฉ‹เจฐเฉ‡เจŸ เจธเจฟเจ–เจฒเจพเจˆ

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹