配置 Keycloak 以实现高可用性生产部署
1. 启用集群
在生产环境中,大多数情况下需要运行 Keycloak 集群。启用集群对于满足关键的非功能需求以及服务级协议(SLA)至关重要。
- 可用性 :集群允许在不同可用区运行多个 Keycloak 实例,即使节点或可用区出现故障,也不会影响系统的正常运行时间。
- 可扩展性 :根据系统负载,可以灵活地增加或减少节点数量,有助于保持一致的响应时间和吞吐量。
- 故障转移 :集群有助于从故障中恢复,防止数据丢失(主要是缓存中的数据),并避免对整体可用性产生影响。
Keycloak 专为高可用性和快速响应时间而设计,除了将持久数据存储在数据库中,还使用缓存层在内存中复制和保存状态,以实现快速数据访问。其集群功能基于 Infinispan 构建的分布式缓存层,Infinispan 是一个高性能的键值内存数据存储。
要启用集群和实现完全的高可用性,需要执行以下操作:
- 使用分布式缓存运行服务器。
- 确保反向代理配置为在不同实例之间分配负载,并尊重会话亲和性。
当使用 start 命令以生产模式运行服务器时,集群默认启用。默认的缓存配置从 $KC_HOME/conf/cache-ispn.xml 文件读取,也可以使用 cache-config-file 选项提供自定义文件。
以下是在同一主机
Keycloak高可用生产部署配置
超级会员免费看
订阅专栏 解锁全文
259

被折叠的 条评论
为什么被折叠?



