将复制
推送复制用于同步局部存储库,并由近端上的Artifactory服务器实现,该服务器调用工件到远端的同步。
有两种方法调用push复制:
- 将推:按一定时间间隔异步调度推送
- 基于事件的推动:推送几乎是实时发生的,因为工件的每次创建、复制、移动或删除都会立即传播到远端。
优势
- 它是快速的,因为它是异步的。
- 它最小化了存储库不同步的时间。
- 在复制链的情况下,它减少了主节点上的流量(“服务器a”复制到“服务器B”,“服务器B”然后复制到“服务器C”等等)。
何时使用Push复制
当远端存储库对于近端存储库中的任何更改(创建、复制、移动或删除工件)进行近实时更新非常重要时,建议使用基于事件的推送复制。
定期计划的复制运行在基于事件的复制之上,即使在服务器停机和网络分区的情况下也能保证完整复制的一致性。
Multi-push复制
需要企业License。
使用企业许可证,Artifactory支持多推送复制,允许您同时将本地存储库从单个源复制到多个企业目标站点。
把复制
这提供了一种方便的方式来主动填充远程缓存,并且当由于网络延迟而不希望等待新工件按需到达时(第一次请求时),这种方法非常有用。
调用pull复制有两种方法:
- 安排拉:Pull复制由远程存储库调用,并根据定义的计划异步运行,以定期同步存储库(本地、远程或虚拟)。
- 基于事件的提取:需要企业License。
pull几乎是实时发生的,因为工件的每次创建、复制、移动或删除都会立即传播到远端。只要上传了一个文件,它就会被复制并立即提供给目标(拉)实例,甚至不需要等待文件上传在源端完成
优势
- 许多目标服务器可以有效地从同一源服务器提取数据,实现一对多复制。
- 因为每个包裹只有一个“跳”,所以更安全。
- 它减少了目标服务器上的流量,因为它们不必在复制链中传递工件。
何时和何时不使用拉复制
在以下情况下,建议使用Pull复制:
- 当您需要将存储库复制到多个目标时。
- 当您的源存储库位于阻止推送复制的代理之后时(例如,将托管在Artifactory SaaS上的存储库复制到站点的本地存储库)
拉式复制不能用于复制不是Artifactory存储库的远程资源。的正常缓存和代理行为中,只能按需缓存来自第三方存储库的工件远程存储库
调度和配置复制
界面方式
通过用户界面将复制配置为计划任务。本地存储库可以配置为推式复制,远程存储库可以配置为拉式复制。
所有复制消息都记录在主服务器上Artifactory日志文件.
的复制本地存储库列表中的列指示是否为列表中的每个存储库配置了复制。如果确实为存储库配置了复制,则可以单击列表中的图标来调用它。
配置推送复制
中配置了本地存储库的推送复制任务复制的标签。配置本地存储库对话框。
首先,在Cron表达式字段定义复制任务计划有效的cron表达式。
的下一次复制时间将指示更新相应。
Cron表达式VS事件库复制
方法将此存储库复制到其所有目标,同时进行Cron表达式你定义。
事件库复制将尝试复制只有受事件影响的工件,而Cron表达式将触发存储库中所有工件的同步。这个区别很重要,因为如果其中一个事件同步失败,下一次Cron表达式将触发同步,所有更改将同步。
为每个复制目标配置了复制属性之后,可以使用复制选项卡显示它们。
字段名 | 描述 |
---|---|
目的地url |
您已经定义的复制目标 |
启用 |
设置时,启用此存储库复制到中指定的目标推动 |
启用事件复制 |
设置后,每个事件都将触发复制在此事件中更改的工件。这可以是工件上的任何类型的事件,例如添加、删除或属性更改。 |
复制目标个数
如果没有企业许可证,则只能定义一个复制的目标。使用企业许可证,Artifactory支持多推送复制,您可以根据需要定义任意数量的目标。
添加推送复制目标
单击,为该复制添加目标站点添加显示复制属性对话框,并按如下方式填写详细信息。
字段名 | 描述 |
---|---|
启用此存储库的活动复制 |
设置后,该复制将在保存时启用 |
URL |
远程Artifactory服务器上的目标本地存储库的URL。使用格式 |
用户名 |
HTTP认证用户名。 |
凭证 |
使用HTTP认证密码或身份标识 |
代理 |
与远程实例通信时使用的代理配置。 |
套接字超时 |
用于远程操作的网络超时(以毫秒为单位)。 |
同步已删除的工件 |
设置后,本地删除的项也应该远程删除(也适用于属性元数据)。 请注意,启用此选项,将删除目标上源存储库中不存在的工件。 |
同步工件属性 |
设置后,该任务还同步复制工件的属性。 |
同步工件统计信息 |
设置后,该任务还同步工件下载统计信息。设置为避免在为灾难恢复设置复制时在目标实例上进行无意的清理。 |
路径前缀(可选) |
只有位于与存储库中的子路径匹配的路径中的工件才会被复制。 |
配置Pull复制
中配置了远程存储库的拉复制任务复制的标签。编辑远程存储库对话框。
首先,在Cron表达式字段定义复制任务计划cron表达式。
的下一次复制时间将指示更新相应。
字段名 | 描述 |
---|---|
启用此存储库的活动复制 |
设置后,该复制将在保存时启用 |
URL |
远程Artifactory服务器上的目标本地存储库的URL。使用格式 对于某些包类型,需要在URL中为存储库键加上前缀 |
启用事件复制 |
设置后,每个事件都将触发复制在此事件中更改的工件。这可以是工件上的任何类型的事件,例如添加、删除或属性更改。 |
同步已删除的工件 |
设置后,本地删除的项也应该远程删除(也适用于属性元数据)。 |
同步工件属性 |
设置后,该任务还同步复制工件的属性。 |
路径前缀(可选) |
只有位于与远程存储库中的子路径匹配的路径中的工件才会被复制。 |
关于远程存储库配置的凭据
用于复制的远程存储库的文件清单是使用存储库下定义的存储库凭据检索的先进的配置部分。
检索到的远程文件取决于已配置用户在远程存储库(在另一个Artifactory实例上)上的有效权限。
*检查哪些包格式需要在存储库路径前面加上api/
使用REST API进行复制
Artifactory的REST API支持推式复制和拉式复制。详情请参阅以下资料:
复制属性
一旦调用了复制,系统就会对被复制的源存储库进行注释,并使用指示复制状态的属性对其进行注释。属性中可以查看这些属性以及可能注释存储库的其他属性属性选项卡。
对于单个推送复制操作,将创建/更新以下属性:
关键 | 价值 |
---|---|
artifactory.replication。< source_repo_key > .started |
复制开始的时间 |
artifactory.replication。< source_repo_key > .status |
指示复制操作完成后的状态。取值为: 好吧:复制成功。 失败:复制失败。您应该检查日志文件中的错误 |
artifactory.replication。< source_repo_key > .finished |
复制结束的时间 |
对于多推送复制操作(仅适用于企业客户),将创建/更新以下属性:
关键 | 价值 |
---|---|
artifactory.replication。< source_repo_key >_ < target_repo_URL >.started |
复制开始的时间 |
artifactory.replication。< source_repo_key >_ < target_repo_URL >.status |
指示复制操作完成后的状态。取值为: 好吧:复制成功。 失败:复制失败。您应该检查日志文件中的错误 |
artifactory.replication。< source_repo_key > _ < target_repo_URL > .finished |
复制结束的时间 |
使用存储级同步选项优化存储库复制
需要Enterprise+ license。
您可以设置Artifactory来卸载将数据复制到存储设备的繁重工作,方法是只复制元数据,同时确保数据在目标二进制存储上可用。建议这样做,例如,当您有两个配置了复制的Artifactory实例。在Artifactory上配置的二进制提供程序包括集成支持对于在存储级上复制数据,允许您将复制进程分配到存储。
使用存储级同步选项运行存储库复制。
- 同步源端和目标端Artifactory系统的存储设备。
- 设置checkBinaryExistenceInFilestore在源Artifactory中的Push或Pull Replication API命令中将flag设置为true。有关更多信息,请参见拉/ PushReplication,设置存储库复制,更新存储库复制API命令。
- 设置checkBinaryExistenceAllowed在目标Artifactory中使用checksumReplication API命令将标志设置为true。有关更多信息,请参见配置校验和复制而且获取校验和复制API命令。
观看录像
要了解复制的实际情况,请观看下面的简短截屏。