跳转到主要内容

ZODB复制存储

项目描述

ZODB复制存储(ZRS)为ZODB提供数据库复制功能。对于每个数据库,可以定义一个主存储和一个或多个次级存储。次级存储将自动从主存储复制数据。

复制优于备份,因为只要次级存储正在运行,次级数据就会保持更新。在主存储失败的情况下,只需重新配置一个次级存储为主存储,它就可以开始处理应用程序请求。

功能

  • 主/次级复制

  • 只读次级存储的支持

要求

  • ZODB 3.9或更高版本。

安装

ZRS与其他Python包一样安装,通过安装zc.zrs包使用easy_installzc.buildoutpip等。

使用ZRS

ZRS提供了两种ZODB存储实现:主存储和辅助存储。这两种存储都使用文件存储。

  • 主存储是可读可写的存储。

  • 辅助存储是只读的。

    辅助存储可以被只读应用程序客户端使用,以减少服务器负载。

    辅助存储从主存储或其他辅助存储复制数据。

理论上,ZRS存储可以在需要ZODB存储的任何地方使用。然而,在实践中,它们通常用于ZEO服务器。

使用ZConfig配置

如果使用ZConfig来配置ZODB存储的应用程序,例如ZEO服务器或Zope,则ZRS主存储或辅助存储的配置可以像其他存储一样包含在配置文件中。例如,要配置主存储,可以使用以下内容:

%import zc.zrs

<zrs>
 replicate-to 5000

 <filestorage>
     path /path/to/data/file
 </filestorage>
</zrs>

以下是对每一行的解释

%import zc.zrs

导入语句是必需的,用于加载ZRS的ZConfig模式定义。

<zrs>

zrs部分定义了一个ZRS存储。一个ZRS存储可以是主存储或辅助存储。没有replicate-from选项的ZRS存储(如上面的示例)是一个主存储。

replicate-to 5000

replicate-to选项指定了复制地址。辅助存储将连接到该地址以下载复制数据。此地址可以是端口号或主机名(接口名称)和端口号,由冒号分隔。

<filestorage>
  path /path/to/data/file
</filestorage>

一个ZRS存储部分必须包含一个filestorage部分,指定一个包含数据的文件存储。

配置辅助存储与配置主存储类似

%import zc.zrs

<zrs>
 replicate-from primary-host:5000
 replicate-to 5000
 keep-alive-delay 60

 <filestorage>
     path /path/to/secondary/data/file
 </filestorage>
</zrs>

对于辅助存储,使用replicate-from选项指定从何处复制数据。

由于主存储和辅助存储通常位于不同的机器上,因此通常在replicate-from选项中指定主机。

辅助存储还可以指定一个replicate-to选项。如果使用此选项,则其他辅助存储可以从辅助存储而不是从主存储复制。

辅助存储还支持以下可选选项

keep-alive-delay SECONDS

在某些网络配置中,TCP连接在长时间无活动后会被中断。这甚至可能以一种客户端无法检测到断开连接的方式完成。为了防止这种情况,可以使用keep-alive-delay选项使辅助存储定期向服务器发送无操作消息。

代码和贡献

https://github.com/zc/zrs

最近更改

有关早期更改,请参阅HISTORY.rst

3.1.0 (2017-04-07)

  • Python 3(3.4和3.5)支持。

    当Twisted支持Python 3.6时,将添加3.6支持。(在Python 3.6下存在一些令人担忧的测试失败。)

  • API的细微便利性更改:在实例化主存储或辅助存储时,您可以传递一个文件名而不是存储实例,系统将自动创建文件存储。

3.0.0 (2017-04-04)

  • 添加对ZODB 5的支持

  • 删除ZooKeeper支持。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

zc.zrs-3.1.0.tar.gz (48.0 KB 查看哈希值

上传于

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面