如何在应用程序节点之间同步令牌(字符串值)?

时间:2012-12-20 07:08:33

标签: token nodes synchronizing

我们有一个Spring 3 + REST应用程序,我们在其中使用令牌来识别请求的来源。此令牌保存在内存中(在散列映射中)并用于标识请求。 当我们是我们的应用程序的多个实例(部署在不同机器上的多个tomcat实例上)时,我们如何在不同的应用程序节点之间共享/同步此令牌? 我们唯一的要求是在不同节点之间同步此令牌。

我浏览并发现了一些像Redis,memcached,zookeeper这样的软件。我无法决定选择哪一个。

任何建议/评论都是有帮助的。

此致 普拉莫德

1 个答案:

答案 0 :(得分:0)

我从来没有使用过动物园管理员,所以我不能说它。 Redis(数据库)和memcached(缓存)都适合您。哪一个更好取决于你如何使用令牌。

如果选择Redis:

  • 令牌可能会存放很长时间
  • 无需过期令牌
  • 想要处理比存储在内存中更多的令牌
  • 想要将令牌复制到其他服务器,因此如果其他服务器发生故障,其他服务器将提供令牌
  • 令牌必须在服务器重启后继续存在

如果符合以下条件,请选择memcached:

  • 令牌仅在一定时间内有效并且应该到期
  • 令牌数量占用内存容量,最近最少使用的令牌将被删除
  • 所有令牌都可以存储在内存中
  • 无需将令牌复制到其他服务器
  • 令牌不必在服务器重启后继续存在
  • 想要使用Spring Cache抽象