是否可以使用单个memcached服务器运行同一应用程序的多个实例?

时间:2018-05-16 10:49:51

标签: java docker memcached spymemcached

我在dockerized应用程序和Memcached上遇到问题,存储一些值,显然,当启动一个运行Spymemcached客户端的新Docker实例时,存储在缓存中的所有数据都是无效的,所以如果我以前在节点1的缓存中存储了一些值,然后我启动节点2,从Memcached服务器清除这些值,最后如果在节点1上再次存储相同的值并在节点2上查询它们将在两个节点之外共享它们清理数据。这是预期的行为吗?我应该为每个客户端实例使用Memcached服务器吗?或者是否可以将多个Memcached服务器实例共享到多个客户端而不丢失存储的数据?

2 个答案:

答案 0 :(得分:0)

您可以与多个客户共享同一个memcached实例。

您只需要为Node1,Node2和memcached创建不同的docker容器。

在同一个容器网络上创建它们。 样本docker-compose.yml

version: '2'
services:
   node1:
     image: <your-image>:latest
     network:
       main:
          aliases:
             - node1
  node2:
     image: <your-image>:latest
     network:
       main:
          aliases:
             - node2
  memcached:
     image: memcached:latest
     network:
       main:
          aliases:
             - memcached
network:
   main:

答案 1 :(得分:0)

我将Memcached客户端库从Spotify迁移到Folsom并解决了我的问题。关于Spymencached的好奇心,我提到的问题只有在客户端在Windows机器上运行时才会出现。