当领域数达到470左右时,Keycloak基本上变得不稳定

Posted

技术标签:

【中文标题】当领域数达到470左右时,Keycloak基本上变得不稳定【英文标题】:When realm count reaches around 470, Keycloak basically becomes unstable 【发布时间】:2019-06-25 04:21:29 【问题描述】:

我们有一个 Keycloak 4.8.1.Final 部署在一个 k8 集群上,其中有两个 具有默认设置的节点。后端数据库是 PostgreSQL。

我们正在增加 Keycloak 中的领域数量,以确定是否 Keycloak 可以支持更多的领域;这些创作完成了 顺序。

但是,当领域数量达到470左右时,它会制作keycloak 根本无法使用管理 GUI 根本不加载和请求 执行时间过长。

以下是所用时间的摘要。我们尚未将任何用户添加到 领域。

+--------------+----------+------------+------------+------------+
|  Operation   | 0 realms | 100 realms | 250 realms | 350 realms |
+--------------+----------+------------+------------+------------+
| Create realm |     1104 |       3739 |       8659 |      11535 |
| Get realm    |      128 |        961 |       3067 |       3853 |
| Get token    |      636 |       1159 |       2714 |       3197 |
| Get roles    |      127 |       1037 |       3034 |       3649 |
+--------------+----------+------------+------------+------------+

是否有任何已知限制或最佳领域数 密钥斗篷部署?

也已经在user group 中提出。

【问题讨论】:

原因是 Keycloak 一次性加载缓存中的所有领域 有这个限制的消息吗? @lkamal 您能否尝试为您的 Postgres 实例启用 pg_stat_statements 扩展,并共享有关数据库查询性能的信息,例如使用SELECT * FROM pg_stat_statements ORDER BY max_exec_time DESC 如果我没记错的话,Keycloak Jira 中存在相应的问题,并且在最近或不久的将来的版本中是/应该对多领域性能进行一些改进 @lkamal 了解以下信息也很有帮助:a) 在等待请求完成时,keycloak 进程的 CPU 使用率是多少? b) postgres 进程的 CPU 使用率是多少? c) keycloakpostgres 进程运行在什么机器类型(CPU、RAM、磁盘类型)上?哪些是瓶颈? 【参考方案1】:

在这方面有一些未解决的问题已经有一段时间了:

https://issues.redhat.com/browse/KEYCLOAK-6826 https://issues.redhat.com/browse/KEYCLOAK-6535 https://issues.redhat.com/browse/KEYCLOAK-4593 http://keycloak-user.88327.x6.nabble.com/keycloak-user-Keycloak-Performance-with-large-number-of-realms-td3853.html https://lists.jboss.org/pipermail/keycloak-user/2016-October/008061.html

据我回忆,有几个消息来源指出大约 400 个领域的性能下降。然而,上述问题似乎都没有得到有效解决。

【讨论】:

以上是关于当领域数达到470左右时,Keycloak基本上变得不稳定的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak:缺少领域公钥

keycloak 删除自动添加的默认角色

两个微服务之间的通信——keycloak客户端

Keycloak + Spring Cloud Gateway + Angular 9

ACCESS作为网站数据库的弊端

如何将领域文件导出到 keycloak docker 容器中?