6.2. 参考架构
以下设置用于检索以上设置,在不同场景中运行大约 10 分钟的设置:
- OpenShift 4.17.x 通过 ROSA 部署在 AWS 上。
-
具有
c7g.2xlarge
实例的机器池。* - 在具有主动/主动模式下有两个站点的高可用性设置中使用 Operator 和 3 个 pod 部署的红帽 Keycloak 构建。
- OpenShift 的反向代理在 passthrough 模式下运行,其中客户端的 TLS 连接在 Pod 上终止。
- 在多AZ 设置中的数据库 Amazon Aurora PostgreSQL。
- 带有 Argon2 和 5 哈希迭代的默认用户密码散列,以及 OWASP (默认) 推荐的最小内存大小 7 MiB。
- 客户端凭证授予不使用刷新令牌(这是默认设置)。
- 数据库看到有 20,000 个用户和 20,000 个客户端。
- Infinispan local 缓存默认是 10,000 个条目,因此并非所有客户端和服务器都适合缓存,一些请求需要从数据库中获取数据。
- 默认情况下,分布式缓存中的所有身份验证会话都会有两个所有者,每个条目有两个所有者,允许一个失败的 Pod 而不丢失数据。
- 所有用户和客户端会话都存储在数据库中,不会缓存在内存中,因为这是在多站点设置中测试的。预期将缓存单站点设置的性能,因为固定用户和客户端会话将被缓存。
- OpenJDK 21
* 对于 AWS 上的非 ARM CPU 架构(c7i
/c7a
.c7g
)发现,客户端凭证授予和刷新令牌工作负载能够为每个 CPU 内核提供两倍操作,而密码散列则为每个 CPU 内核提供持续数量的操作。根据您的工作负载和云定价,请运行您自己的测试,并为混合工作负载进行自己的计算结果,以了解哪个架构为您提供了更好的定价。