【问题标题】:Memcache automatic horizontal scalingMemcache 自动水平扩展
【发布时间】:2017-09-11 09:02:18
【问题描述】:
我们有一个包含 2 个 Web 服务器和 2 个 memcache 服务器的场景。 Memcache 服务器节点在每个 Web 服务器上的配置文件中进行配置。
为了让我们能够自动水平扩展 Web 服务器,我们需要能够自动水平扩展内存缓存服务器。由于在 web 配置文件中定义了 memcache 节点,目前我们无法做到这一点。
在对系统影响最小的情况下,自动水平扩展 memcache 服务器的最佳方法是什么。
【问题讨论】:
标签:
memcached
horizontal-scaling
【解决方案1】:
你可以试试mcrouter。
什么是 Mcrouter?
它是一个 memcached 协议路由器,用于 Facebook 处理分布在全球 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"
}
}
}
希望对你有帮助!