使用Hazelcast而不是MongoDB来存储用户会话/密钥有什么好处?

Igo*_*orA 6 java spring caching mongodb hazelcast

我们正在运行mongodb实例来存储集合中的数据,没有问题,mongo是我们的主要数据存储.

今天,我们将为产品开发Oauth2支持,并且必须存储用户会话(安全密钥,访问令牌等等),并且只有在定义的超时后才能对身份验证服务器验证访问令牌,以便不每个请求都将等待验证服务器的验证.应始终针对身份验证服务器对安全资源(create)的第一个请求进行身份验证.任何后续请求都将在内部进行验证(缓存)并检查内部超时,并且只有在过期时才会发出对验证服务器的另一个请求.

为了解决这些要求,我们必须引入某种分布式缓存,存储(使用TTL支持)用户会话等,基于ttl ... .i写了关于上面的内容.

这里有两个选择:

  1. 在hazelcast中存储用户会话并在所有App服务器上共享它 - 不错的选择,在驱逐地图中保留所有用户会话.
  2. 在MongoDb中存储用户会话 - 并执行相同的操作.

您是否看到使用Hazelcast而不是将临时数据存储在Mongo中的任何好处?您知道的任何重大性能改进?

我是Hazelcast的新手,因此不了解所有杀手级功能.

Tal*_*urk 18

免责声明:我是Hazelcast的创始人......

  1. Hazelcast更简单,简单也很重要.
  2. 您可以将Hazelcast嵌入到您的应用程序中(如果您的应用程序是用Java编写的).无需部署和维护远程nosql集群.
  3. Hazelcast直接与您的应用程序对象一起使用.没有JSON或任何其他格式.编写和读取java对象.
  4. 您可以在内存数据上执行Java代码.无需获取和处理数据; 将代码发送到数据.
  5. 您可以收听有关数据的更新."更新此地图或密钥时通知我".
  6. Hazelcast拥有丰富的数据结构集,如队列,主题,信号量,锁,多图等.想象一下,跨多个节点共享一个队列,并能够阻止队列轮询/执行操作...这真的很酷:)

  • 谢谢,这是我想听到的:)让我信服. (2认同)