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