我们正在运行mongodb实例来存储集合中的数据,没有问题,mongo是我们的主要数据存储.
今天,我们将为产品开发Oauth2支持,并且必须存储用户会话(安全密钥,访问令牌等等),并且只有在定义的超时后才能对身份验证服务器验证访问令牌,以便不每个请求都将等待验证服务器的验证.
应始终针对身份验证服务器对安全资源(create)的第一个请求进行身份验证.任何后续请求都将在内部进行验证(缓存)并检查内部超时,并且只有在过期时才会发出对验证服务器的另一个请求.
为了解决这些要求,我们必须引入某种分布式缓存,存储(使用TTL支持)用户会话等,基于ttl … .i写了关于上面的内容.
这里有两个选择:
>在hazelcast中存储用户会话并在所有App服务器上共享它 – 不错的选择,在驱逐地图中保留所有用户会话.
>在MongoDb中存储用户会话 – 并执行相同的操作.
您是否看到使用Hazelcast而不是将临时数据存储在Mongo中的任何好处?您知道的任何重大性能改进?
我是Hazelcast的新手,因此不了解所有杀手级功能.
最佳答案
免责声明:我是Hazelcast的创始人……
> Hazelcast简单易用,简单性非常重要.
>您可以将Hazelcast嵌入到您的应用程序中(如果您的应用程序是
用Java编写).无需部署和维护远程nosql
簇.
> Hazelcast直接与您的应用程序对象一起使用.没有
JSON或任何其他格式.编写和读取java对象.
>你可以
在内存数据上执行Java代码.无需获取和
处理数据;将代码发送到数据.
>你可以听
您的数据更新. “当这张地图或钥匙出现时通知我
更新”.
> Hazelcast拥有丰富的数据结构,如队列,
主题,信号量,锁,多图等.想象一下共享一个队列
跨多个节点,并能够阻止队列轮询/采取
操作……真的很酷:)