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"
}
}
}
希望对您有所帮助!
我们有一个包含 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"
}
}
}
希望对您有所帮助!