如何解决当artifactory.log显示“拒绝排队复制事件”?

JFrog支持
2023-02-26 20:54

**本方案假设使用Tomcat**

当从服务器A复制到服务器B时,有时当服务器B处于高负载下时,单个复制请求(如PUT请求)可能会挂起并在一段时间内保持未处理状态。在这种情况下,服务器A(复制服务器)的日志可能会显示“拒绝....的队列复制事件”队列已满”。

此错误涉及复制队列,该队列是在复制期间动态构建的。建议减少此错误发生的方法是增加Tomcat HTTP连接器上的“maxThreads”参数,该参数位于$TOMCAT_HOME/conf/server.xml:

<连接器端口="8081" maxThreads="x" / >

当不指定该参数时,缺省值为200。

此参数决定请求处理线程的最大数量。在上面提到的场景中,服务器B由于来自服务器a的传入PUT请求而处于高负载下,这导致服务器a上的复制队列充满了等待处理的请求。

可以使用JConsole实现活动线程监视。还有更多信息在这里

复制队列的大小也可以通过“artifact .replication.event.queue”来增加。Size "系统属性。默认情况下,这个属性没有在artificial .system.properties文件($ARTIFACTORY_HOME/etc/ artificial .system.properties)中指定,所以有必要添加它。默认值为50,000,如果需要,可以乘以若干倍。虽然我们没有推荐下一种方法,但这是一种选择。