Memcache 自动横向伸缩

Memcache automatic horizontal scaling

我们有一个包含 2 个 Web 服务器和 2 个内存缓存服务器的场景。内存缓存服务器节点在每个 Web 服务器上的配置文件中配置。

为了自动水平扩展 Web 服务器,我们需要能够自动水平扩展内存缓存服务器。由于在 Web 配置文件中定义了内存缓存节点,目前我们无法做到这一点。

自动水平扩展内存缓存服务器且对系统影响最小的最佳方法是什么。

你可以试试mcrouter

什么是Mcrouter?

它是 Facebook 使用的 memcached 协议路由器,用于处理分布在全球 Facebook 数据中心的数十个集群中缓存服务器的所有流量。

缩放是如何发生的?

要将新服务器添加到集群中,只需在路由配置文件中添加一个 IP 条目即可。 'mcrouter' 自动检测并添加到具有一致性哈希的集群。

配置文件如下所示,包含 2 个服务器条目。

{
   "pools": {
      "A": {
         "servers": [
           "SERVER1_IP:11211",  
           "SERVER2_IP:11211"
         ]
      }
   },
   "route": {
     "type": "OperationSelectorRoute",
     "operation_policies": {
       "add": "AllSyncRoute|Pool|A",
       "delete": "AllSyncRoute|Pool|A",
       "get": "RandomRoute|Pool|A",
       "set": "AllSyncRoute|Pool|A"
     }
   }
 }

希望对您有所帮助!