云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





概述

Artifactory支持在两个Artifactory实例之间复制存储库upp由分布在遥远地理位置的不同团队进行Ort开发。复制的好处是:

  • 确保所有开发人员都使用相同版本的远程工件
  • 确保在不同的开发团队之间有效地共享构建工件
  • 克服连接问题,如访问远程工件时的网络延迟和稳定性
  • 访问远程工件的特定版本

用于复制的人工版本

我们强烈建议只在运行相同Artifactory版本的服务器之间执行复制。

我们不建议将人工存储库复制与文件存储的AWS S3跨区域复制。这样的配置可能导致同步问题。

了解更多>如何为大量工件调优Cron Replication。

支持两种主要的复制方法:

  • 将复制
    B
    支持计划的和基于事件的推送复制,并且通过企业许可证可以使用多推送复制

  • 把复制
    B
    支持计划复制和基于事件的拉复制;基于事件的拉取需要企业许可证。

页面内容

将复制

Push复制用于同步局部存储库,并由近端的Artifactory服务器实现,该服务器调用到远端的工件同步。

有两种方法可以调用推送复制:

  • 将推:定时异步调度推送
  • 基于事件的推动:推送几乎是实时发生的,因为工件的每次创建、复制、移动或删除都会立即传播到远端。

优势

  • 它之所以快是因为它是异步的。
  • 它最大限度地减少了存储库不同步的时间。
  • 在复制链的情况下,它减少了主节点上的流量(“服务器a”复制到“服务器B”,“服务器B”然后复制到“服务器C”等)。

避免复制循环(“循环复制”)

当运行在不同服务器上的Artifactory的两个实例同时将内容从一个复制到另一个时,就会发生复制循环(“循环”或“双向”复制)。

例如,将“服务器A”配置为将其存储库复制到“服务器B”,同时将“服务器B”配置为将其存储库复制到“服务器A”。

或者"服务器A"复制到"服务器B"再复制到"服务器C"再复制回"服务器A"

我们强烈建议避免循环复制,因为这可能对系统造成灾难性影响,导致数据丢失,或者相反,导致磁盘空间使用呈指数级增长。

何时使用推送复制

当远端的存储库对于近端的存储库中的任何更改(创建、复制、移动或删除工件)都需要近乎实时地更新时,建议使用基于事件的推送复制。

定期计划复制在基于事件的复制之上运行,即使在服务器停机和网络分区的情况下也能保证完全复制的一致性。

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。使用格式https:// < artifactory_url > / artifactory / < repository_name >

用户名
HTTP认证用户名。
凭证
使用HTTP身份验证密码或身份标识
代理
与远程实例通信时使用的代理配置。
套接字超时
用于远程操作的网络超时(以毫秒为单位)。
同步已删除的工件
设置后,本地删除的项也应该远程删除(也适用于属性元数据)。
请注意,启用此选项,将删除源存储库中不存在的目标上的工件。
同步构件属性
设置后,任务还会同步复制工件的属性。
同步工件统计信息
设置后,任务还会同步工件下载统计信息。设置以避免在为灾难恢复设置复制时在目标实例上进行无意的清理。
路径前缀(可选)
只有位于与存储库中的子路径匹配的路径中的工件才会被复制。


配置Pull复制

中配置了远程存储库的pull复制任务复制标签编辑远程存储库对话框。

首先,在Cron表达式字段定义复制任务计划,使用有效的cron表达式。

下一次复制时间将指示相应的更新。

字段名 描述
启用此存储库的活动复制
设置后,保存时将启用此复制
URL

远程Artifactory服务器上目标本地存储库的URL。使用格式https:// < artifactory_url > / artifactory / < repository_name >

对于某些包类型,您需要在URL中的存储库键加上前缀api / < pkg >有关需要这样做的包类型列表,请参见请注意下面

启用事件复制
设置后,每个事件将触发在此事件中更改的工件的复制。这可以是工件上的任何类型的事件,例如添加、删除或属性更改。
同步已删除的工件
设置后,本地删除的项也应该远程删除(也适用于属性元数据)。
同步构件属性
设置后,任务还会同步复制工件的属性。
路径前缀(可选)
只有位于与远程存储库中的子路径匹配的路径中的工件才会被复制。


关于远程存储库配置的凭据

远程存储库用于复制的文件清单是使用存储库的凭证检索的,该凭证定义在存储库的凭证下先进的配置部分。

检索到的远程文件取决于配置的用户对远程存储库(在另一个Artifactory实例上)的有效权限。

*检查哪些包格式需要在存储库路径前加上api/

对于某些打包格式,当使用相应的客户端通过Artifactory访问存储库时,URL中的存储库键需要加上前缀api / < pkg >在小路上。例如,在的情况下NPM存储库,存储库密钥的前缀应该是api / npm

然而,这条规则也有例外。例如,在复制Maven存储库时,您需要这样做需要在远端存储库路径上添加前缀

是否为存储库键添加前缀的注意事项api / < pkg >与配置智能远程存储库时相同。以获取应该以。作为前缀的包格式的详细列表api / < pkg >,详情请参阅配置智能远程存储库

使用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实例中搜索二进制,如果存在,则源将只复制元数据。

  • 在存储层上复制数据是用户的责任。

  • 此功能在默认情况下是禁用的,不会改变任何行为。


观看视频

要查看复制的实际操作,请观看下面的简短屏幕截图。



  • 没有标签
版权所有©2022 JFrog Ltd.