如何定义Keycloak infinispan集群名称?

Keycloak

1 前言

一个问题,一篇文章,一出故事。
笔者的生产环境有两个数据中心,我们简称dg和hk,当前系统架构图如下,

https://websso.cmdschool.org(nginx anyCast Cluster)
           |
           |--> https://dgrhbk01.cmdschool.org:8443 -->  |                    |
           |    (10.168.200.54,keycloak,active)          |------------------->|tcp://dgrhbkdb01.cmdschool.org:3306          
           |--> https://dgrhbk02.cmdschool.org:8443 -->  |                    |    (10.168.200.54,mariaDB)
           |    (10.168.200.55,keycloak,active)          | 
           |                                             
           |--> https://hkrhbk01.cmdschool.org:8443 ---> |                    | 
           |    (10.168.208.184,keycloak,backup)         |------------------->|tcp://hkrhbkdb01.cmdschool.org:3306
           |--> https://hkrhbk02.cmdschool.org:8443 ---> |                    |    (10.168.208.183,mariaDB)
           |    (10.168.208.185,keycloak,backup)         |

按照笔者的规划,两个数据中心的Keycloak应该为独立的两套集群,但是笔者通过查看数据库发现他们自动加到了同一套集群,

MariaDB [keycloak]> select * from keycloak.JGROUPS_PING;
+---------------------------------------------+-----------------+--------------+---------------------+-------+
| address                                     | name            | cluster_name | ip                  | coord |
+---------------------------------------------+-----------------+--------------+---------------------+-------+
| uuid://00000000-0000-0000-0000-00000000003e | dgrhbk01-10292  | ISPN         | 10.168.200.54:7600  |     0 |
| uuid://00000000-0000-0000-0000-00000000003f | dgrhbk02-3491   | ISPN         | 10.168.200.55:7600  |     1 |
| uuid://00000000-0000-0000-0000-000000000042 | hkrhbk01-17550  | ISPN         | 10.168.208.184:7600 |     0 |
| uuid://00000000-0000-0000-0000-000000000043 | hkrhbk02-64818  | ISPN         | 10.168.208.185:7600 |     0 |
+---------------------------------------------+-----------------+--------------+---------------------+-------+
4 rows in set (0.000 sec)

MariaDB [keycloak]> 

因此,本章将总结如何解决此问题。
另外关于Keycloak环境的配置,如有需要请参阅如下文档。

如何部署RHBK的分布式缓存集群?

2 最佳实践

2.1 修改集群配置

vim /etc/keycloak/cache-ispn.xml

加入或者修改如下配置,

<cache-container name="keycloak">
    <transport cluster="HKISPN"/>
</cache-container>

2.2 重启服务使配置生效

On hkrhbk0[1-2]

systemctl restart keycloak

2.3 确认配置是否生效

MariaDB [keycloak]> select * from keycloak.JGROUPS_PING;
+---------------------------------------------+-----------------+--------------+---------------------+-------+
| address                                     | name            | cluster_name | ip                  | coord |
+---------------------------------------------+-----------------+--------------+---------------------+-------+
| uuid://00000000-0000-0000-0000-00000000003e | dgrhbk01-10292  | ISPN         | 10.168.200.54:7600  |     0 |
| uuid://00000000-0000-0000-0000-00000000003f | dgrhbk02-3491   | ISPN         | 10.168.200.55:7600  |     1 |
| uuid://00000000-0000-0000-0000-000000000046 | hkrhbk01-36089  | HKISPN       | 10.168.208.184:7600 |     1 |
| uuid://00000000-0000-0000-0000-000000000047 | hkrhbk02-30813  | HKISPN       | 10.168.208.185:7600 |     0 |
+---------------------------------------------+-----------------+--------------+---------------------+-------+
4 rows in set (0.000 sec)

MariaDB [keycloak]>

另外,你也可以通过如下命令查看日志确认,

grep -ai cluster /var/log/keycloak/keycloak.log

可见如下配置,

2026-08-12 09:25:08,437 INFO  [org.infinispan.CLUSTER] (main) ISPN000078: Starting JGroups channel `HKISPN` with stack `jdbc-ping`
2026-08-12 09:25:14,676 INFO  [org.infinispan.CLUSTER] (main) ISPN000094: Received new cluster view for channel HKISPN: [hkrhbk01-36089|1] (2) [hkrhbk01-36089, hkrhbk02-30813]
2026-08-12 09:25:14,717 INFO  [org.infinispan.CLUSTER] (main) ISPN000079: Channel `HKISPN` local address is `hkrhbk02-30813`, physical addresses are `[10.168.208.185:7600]`
没有评论

发表回复

Keycloak
如何监控Keycloak?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有一套keycloak集群需要正式上线,上线前 …

Keycloak
如何配置KeyCloak读取/etc/hosts的设置?

1 前言 一个问题,一篇文章,一出故事。 如何升级RHBK的版本? Quarkus/RHBK默认使用 …

Keycloak
如何开启Keycloak的日志调试模式?

1 前言 一个问题,一篇文章,一出故事。 如何升级RHBK的版本? 本章将实现升级后Keycloak …