python下实现一致性hash

首先安装python的一致性hash实现库hash_ring

pip install hash_ring

然后使用hash_ring

from hash_ring import HashRing
memcache_servers = ['192.168.0.246:11212',
                    '192.168.0.247:11212',
                    '192.168.0.249:11212']

ring = HashRing(memcache_servers)
server = ring.get_node('my_key')

一致性hash可以用在服务器的负载均衡下,用来多服务器或多数据库提供服务时,可以将请求平均分发给每个server

可以提供第二个参数用来设置每个服务的权重

from hash_ring import HashRing
memcache_servers = ['192.168.0.246:11212',
                    '192.168.0.247:11212',
                    '192.168.0.249:11212']
servers_weights = {'192.168.0.246:11212':1,
                    '192.168.0.247:11212':2,
                    '192.168.0.249:11212':3}
ring = HashRing(memcache_servers, weights=servers_weights)
server = ring.get_node('my_key')

参考资料:http://www.tuicool.com/articles/qM3eYrb


你可能感兴趣的:(python,hash_ring)