缩放Artifactory:添加远程存储库层

帕特里克·罗素
2023-01-22十一10

主题

横向扩展Artifactory可能是一个挑战,本指南描述了一种减少到中央Artifactory集群的流量的技术。

描述

Artifactory被设计为服务大量流量并易于扩展,但在某些情况下可能会导致性能问题。例如,Docker流量的大幅增加甚至会对大型Artifactory HA集群造成压力。

解决方案是通过添加额外的Artifactory安装“层”来缓冲流量来横向扩展。Artifactory有内置的机制,可以使这个设置简单快速。

决议

一个Artifactory HA集群本身可以处理大量流量,但是对相同工件的重复请求会占用大量CPU资源和数据库连接。2022世界杯阿根廷预选赛赛程特别是,Docker API请求使连接保持长时间打开,并且需要非常昂贵的数据库查询才能完成。

减少这种负载的一种方法是在网络拓扑中添加一个额外的Artifactory层:

用户添加图片

这个设置将Docker请求从集群的其他部分分离出来。这样做可以扩大单个Artifactory HA集群可以处理的Docker流量。

具体来说,这些瓶颈可以扩大:

  • 数据库查询时间慢

  • 由于网络延迟,Docker查询速度较慢

  • 主生产集群上的CPU或RAM负载非常高

远程存储库层使用智能远程存储库从主Production Artifactory集群下载和缓存Docker映像。完成此操作后,远程存储库的元数据缓存检索周期//www.si-fil.com/knowledge-base/how-remote-repository-metadata-works/只获取舱单。Json文件,默认每10分钟一次。

对于上传,可以使用相同的“远程层”Artifactory。使用本地存储库和推送复制//www.si-fil.com/confluence/display/JFROG/Repository+Replication,在docker推送完成后,工件可以推送到主生产集群。

这样做的好处是减少了主Artifactory处理Docker Push上传所需的时间,这需要保持一个连接打开来维护PATCH Docker API调用。

有了额外的Artifactory,主生产集群上的负载就大大降低了。