Consistent Hassing for Python

python-continuum的Python项目详细描述


版权所有(c)2010,作者:Joachim Bauch,mail@joachim-bauch.dehttp://www.joachim-bauch.de/projects/python-continuum/

python continuum提供了一个函数来执行一致的散列。见 维基百科[1]了解更多关于这项技术的信息。

首先我们需要作为服务器存储的continuum对象 信息和以后可用于解析密钥:

>>> from continuum import Continuum
>>> c = Continuum()

显然不能查询空的连续性:

>>> c.resolve('my-key1')
Traceback (most recent call last):
...
IndexError: empty continuum

添加可用作后端的服务器对象:

>>> c.add_server('192.168.0.1', 8080)
<Server "192.168.0.1:8080", capacity=1>
>>> c.add_server('192.168.0.2', 8080)
<Server "192.168.0.2:8080", capacity=1>

您还可以指定要优先使用的服务器的不同容量 它们(默认为1):

>>> c.add_server('192.168.0.3', 8080, 2)
<Server "192.168.0.3:8080", capacity=2>

也可以删除服务器对象:

>>> server = c.add_server('192.168.0.4', 8080)
>>> c.remove_server(server)
>>> len(c)
3

请注意,服务器只能添加一次:

>>> c.add_server('192.168.0.2', 8080)
Traceback (most recent call last):
...
TypeError: server already added

在添加了所有服务器之后,可以查询连续体中的 应用于给定(字符串)键的服务器:

>>> c.resolve('my-first-key')
<Server "192.168.0.1:8080", capacity=1>
>>> c.resolve('my-other-key')
<Server "192.168.0.3:8080", capacity=2>
[1]http://en.wikipedia.org/wiki/Consistent_hashing

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将字符串转换为自定义对象   java如何从socket方法获取数据?   Java中的soap读取回车和新行   java在单击时替换图像   java推荐的使用RXJava执行异步任务的方法   java MySql连接器JDBC驱动程序不支持连接池吗?   java将活动堆栈清理到顶部   java计数用户输入的数量   java从webservice下载大文件导致应用程序性能问题   JavaLocalDate。EPOCH不可用   java如何在使用Selenium等待一定时间后,在页面无法加载(get(url))时自动刷新页面   java Calendar setLenient方法不允许检查年份字段的健全性   java Eclipse和intelliJ 安卓 SDK问题   java为什么我可以在没有super关键字的情况下调用父方法?   java iText的PDF格式不好