我正在考虑设置分布式git服务器的部署。我知道这是git默认执行的操作,但在这种情况下,这些服务器将作为单一真相源,并提供集中支持的所有帮助。
目前,我们的代码库和使用服务器的开发人员数量很少(几百个),但一旦部署,我预计至少会有一千个用户采用并进行自动构建。当这种情况发生时,我预计推送到中央支持的git服务器的数量将增加多倍,这将导致向其他中央支持的git服务器推送增加。
为了限制由所有这些服务器互相推送更改引起的推送风暴的可能性,我打算采用标准的中心枢纽结构,其中一个或两个服务器将充当主服务器,接收来自辐射服务器的推送,并将这些更改推回到其他辐射器。
我的问题出现在我开始考虑全球定位的辐射服务器上推送的多次影响时。我已经在实验室中尝试模拟此情况,从我所看到的情况来看,推送过程只是等待前面的进程完成。在小型部署中,这很好地运作。然而,当你将构建自动化投入运作时,提交/推送活动可能会呈指数增长。如果我决定创建一个后接收挂钩,以处理这些推送的每个客户端推送基础,我可以预见到这些过程可能会在客户端服务器上积压,等待中心枢纽接收更改。
我的问题是:
我的担忧是否有效?这些进程是否会因等待sshd的时间间隔而失败,或者git本身是否有指定等待时间间隔的方法?
除了监视系统进程或包装推送命令以跟踪其完成时间之外,是否有一种检测此操作积压的方法,或者说,检测主服务器上的挂起接收状态?
还有人能向我指出一些与此主题有关的线程或文章吗?
最坏的情况是,在钩子式推送的地方使用定时间隔来推送每个存储库,但我希望保持事物的自由流动和快速,因此钩子式推送将更受欢迎。
目前,我们的代码库和使用服务器的开发人员数量很少(几百个),但一旦部署,我预计至少会有一千个用户采用并进行自动构建。当这种情况发生时,我预计推送到中央支持的git服务器的数量将增加多倍,这将导致向其他中央支持的git服务器推送增加。
为了限制由所有这些服务器互相推送更改引起的推送风暴的可能性,我打算采用标准的中心枢纽结构,其中一个或两个服务器将充当主服务器,接收来自辐射服务器的推送,并将这些更改推回到其他辐射器。
我的问题出现在我开始考虑全球定位的辐射服务器上推送的多次影响时。我已经在实验室中尝试模拟此情况,从我所看到的情况来看,推送过程只是等待前面的进程完成。在小型部署中,这很好地运作。然而,当你将构建自动化投入运作时,提交/推送活动可能会呈指数增长。如果我决定创建一个后接收挂钩,以处理这些推送的每个客户端推送基础,我可以预见到这些过程可能会在客户端服务器上积压,等待中心枢纽接收更改。
我的问题是:
我的担忧是否有效?这些进程是否会因等待sshd的时间间隔而失败,或者git本身是否有指定等待时间间隔的方法?
除了监视系统进程或包装推送命令以跟踪其完成时间之外,是否有一种检测此操作积压的方法,或者说,检测主服务器上的挂起接收状态?
还有人能向我指出一些与此主题有关的线程或文章吗?
最坏的情况是,在钩子式推送的地方使用定时间隔来推送每个存储库,但我希望保持事物的自由流动和快速,因此钩子式推送将更受欢迎。