如何解决artifactory.log显示“拒绝排队复制事件”时的问题?
**此解决方案假设使用Tomcat**
当从服务器A复制到服务器B时,有时当服务器B处于高负载时,单个复制请求(如PUT请求)可能会挂起并暂时不处理。发生这种情况时,服务器A(复制服务器)上的日志可能显示“拒绝....的队列复制事件”队列已满”。
此错误指的是复制队列,它是在复制期间动态构建的。建议减少此错误发生的方法是增加Tomcat HTTP连接器上的“maxThreads”参数,位于$TOMCAT_HOME/conf/server.xml:
当不指定该参数时,默认为200。
此参数决定请求处理线程的最大数量。在上面提到的场景中,服务器B处于由服务器a传入的PUT请求引起的高负载下,这导致服务器a上的复制队列被等待处理的请求填满。
活动线程监控可以通过JConsole实现。有更多的信息在这里.
复制队列的大小也可以通过“artifactory.replication.event.queue”来增加。“Size”系统属性。默认情况下,这个属性没有在artifactory.system.properties文件($ARTIFACTORY_HOME/etc/artifactory.system.properties)中指定,所以有必要添加它。默认值为50,000,如果需要,可以乘以若干次。虽然我们不推荐下一种方法,但它是一种选择。
