1

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

我浏览并发现了一些 API/软件,例如 Redis、memcached、zookeeper。我无法决定选择哪一个。

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

问候, 普拉莫德

4

1 回答 1

0

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

在以下情况下选择 Redis:

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

在以下情况下选择 memcached:

  • 令牌仅在一定时间内有效并且应该过期
  • 令牌数量耗尽内存容量 最近最少使用的令牌将被删除
  • 所有令牌都可以存储在内存中
  • 无需将令牌复制到其他服务器
  • 令牌不必在服务器重启后继续存在
  • 想使用 Spring Cache 抽象
于 2012-12-27T14:01:04.757 回答