我们正在运行 mongodb 实例以将数据存储在集合中,这没有问题,mongo 是我们的主要数据存储。
今天,我们将为产品开发 Oauth2 支持,并且必须存储用户会话(安全密钥、访问令牌等),并且访问令牌必须在定义的超时后才针对身份验证服务器进行验证,这样就不会每个请求都将等待身份验证服务器的验证。对安全资源的首次请求(创建)应始终针对认证服务器进行认证。任何后续请求都将在内部进行验证(缓存)并检查内部超时,只有在过期时,才会向身份验证服务器发出另一个请求。
为了解决这个要求,我们必须引入某种分布式缓存,以存储(支持 TTL)用户会话等,基于 ttl 使其过期......我在上面写过。
这里有两个选项:
- 将用户会话存储在 hazelcast 中并在所有应用服务器之间共享 - 不错的选择,将所有用户会话保留在驱逐地图中。
- 在 MongoDb 中存储用户会话 - 并执行相同操作。
您是否看到使用 Hazelcast 而不是将临时数据存储在Mongo中的任何好处?您知道任何显着的性能改进吗?
我是Hazelcast的新手,所以不了解所有杀手级功能。