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