请求协助配置Keycloak 20.0.5(Quarkus版)外部Infinispan集群
配置Quarkus版Keycloak对接外部Infinispan集群的步骤
基础前提
- 确认Keycloak与Infinispan版本兼容(例如Keycloak 22+对应Infinispan 14+,可参考官方版本矩阵)
- 外部Infinispan集群已开启Hot Rod协议,且Keycloak节点能访问到集群的11222端口(默认Hot Rod端口)
核心配置方式
Quarkus版Keycloak通过keycloak.conf配置文件或启动参数指定远程Infinispan,无需依赖WildFly的XML配置。
方式1:通过keycloak.conf配置
在Keycloak安装目录的conf/keycloak.conf中添加以下内容:
# 指定使用远程Infinispan作为缓存提供者 cache=ispn-remote # 配置Infinispan集群节点地址,多个节点用逗号分隔 cache-ispn-remote-server-list=infinispan-node-1:11222,infinispan-node-2:11222 # 如果Infinispan开启了认证,配置用户名密码 cache-ispn-remote-username=admin cache-ispn-remote-password=your-admin-password
方式2:通过启动参数传递
直接在启动命令中指定配置:
./kc.sh start \ --cache=ispn-remote \ --cache-ispn-remote-server-list=infinispan-node-1:11222,infinispan-node-2:11222 \ --cache-ispn-remote-username=admin \ --cache-ispn-remote-password=your-admin-password
高级配置(可选)
- TLS加密连接:如果Infinispan开启了SSL,添加以下配置:
cache-ispn-remote-use-ssl=true cache-ispn-remote-trust-store-path=/path/to/truststore.jks cache-ispn-remote-trust-store-password=truststore-password - 自定义缓存策略:通过外部客户端配置文件定义缓存超时、模板等,添加:
示例cache-ispn-remote-config-file=/path/to/infinispan-client.xmlinfinispan-client.xml可指定特定缓存的过期时间:<infinispan-client xmlns="urn:infinispan:client:config:14.0"> <servers> <server host="infinispan-node-1" port="11222"/> <server host="infinispan-node-2" port="11222"/> </servers> <remote-cache name="sessions"> <expiration lifespan="86400000"/> </remote-cache> </infinispan-client>
验证配置生效
- 启动Keycloak后,查看日志,搜索
ISPN关键词,确认日志中出现Connected to server等成功连接的条目 - 登录Keycloak管理控制台,进入
Realm Settings->Cache,确认缓存提供者显示为Infinispan Remote
注意事项
- 不要复用WildFly版Keycloak的XML配置文件,Quarkus版完全基于
keycloak.conf或启动参数 - 确保Infinispan集群存在
default缓存模板,或通过配置指定Keycloak所需的缓存模板(Keycloak会自动创建所需缓存实例) - 若出现连接超时,检查网络连通性、Infinispan节点的Hot Rod端口是否开放、防火墙规则
内容的提问来源于stack exchange,提问作者elnurgu
相关产品推荐
相关产品推荐

