docker - Keycloak docker重启后如何保持infinispan session

标签 docker session jboss keycloak infinispan

我有一个正在运行的 keycloak 8 的 docker,但每当我重新启动它时,所有非离线 session 都会消失。结果,每当我更新keycloak时,所有用户都被断开。

原因:

  • 我已阅读 this thread在这里并理解为什么访问 token 不持久(主要是性能问题)。

作为解决方案,我想使用集群(建议 here ),并且我明白,核心部分只是很好地管理 Infinispan。

想法:

  • 我首先想将 infinispan 存储在 docker 容器外部(在一个卷中),然后搜索 JBoss 将 Infinispan 保存在 docker 中的何处,但我没有找到任何内容。

  • 其次,我考虑使用 SPI 来管理外部用户 session ,但这似乎不是正确的解决方案,因为 infinispan 已经做得很好了。

  • this article about Cross-Datacenter support in Keycloak 的帮助下设置集群和 this other one about Keycloak Cross Data Center Setup in AWS似乎是一个很好的起点,但我实际上仍在使用 docker,并且我不确定从这些教程构建 docker 镜像对我来说是否是一个更好的主意。

欢迎任何更多想法:)

最佳答案

我已经尝试过第二次使用 docker cluster,但现在使用 docker swarm 以及来自 here 的信息。 :

The PING discovery protocol is used by default in udp stack (which is used by default in standalone-ha.xml). Since the Keycloak image runs in clustered mode by default, all you need to do is to run it:

docker run jboss/keycloak

If you run two instances of it locally, you will notice that they form a cluster.

我使用 docker 堆栈以集群模式和外部数据库 (postgres) 部署了非常简单的 3 个 keycloak 实例,并且运行良好。

更简单地说,keycloak docker 在使用集群时已经处理了这个用例。

有关集群用例的更多信息,请参阅本教程,了解如何 setup Keycloak Cluster

关于docker - Keycloak docker重启后如何保持infinispan session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60809539/

相关文章:

powershell - 如何关闭每个交互式 PowerShell session ?

session - Echo session 中间件不保存

java - Jboss jsp 问题 <> 运算符对于低于 1.7 的源级别是不允许的

docker - 我的 docker 无法连接到互联网 - 即使使用正确的 dns

deployment - 运行时使用的 Docker 和敏感信息

azure - 如何编辑将标志(--ipc=host)传递给azure管道中的docker run -d -p?

node.js - JBoss AS 7 和 Node.js 炒作

docker - 如何在与集群管理器相同的机器上运行 docker swarm 节点?

angular - 用户 session IONIC 2

mysql - Wildfly 不会因解析异常错误而启动