如何在Artifactory 5中禁用写锁和会话共享的Hazelcast

Tatarao Vana
2021-02-09 17:21

相关版本:
此信息与…有关人工版本5.5及以上,直至但不包括6.0。

人工工厂一直在使用Hazelcast主要用于锁定在写操作和分享节点之间的UI会话。增加的稳定性写锁的方法在您的Artifactory Enterprise集群的节点之间,我们建议禁用Hazelcast。您可能还想禁用UI会话共享。

对于每个函数,您可以使用以下说明来取代Hazelcast使用新方法,原因如下所述。

1.写锁
数据库可以处理写锁,而不是Hazelcast。根据所拥有的节点数量,这种替代方案还可能提高此功能的性能。

产品说明:

  • 关闭所有节点(详细信息请参见下面的注释)。

  • 可选:在Artifactory (pool.max.idle)和你的数据库。集体,最大所有节点的数据库连接数应小于数据库的最大值。换句话说:
    [pool.max。*[节点数]<[最大数据库连接数]
    更多关于数据库的信息监控和调优可以找到在这里

  • 对于每个节点,设置如下内容财产artifactory.system.properties
    artifactory.locking.provider.type = db

  • 开始每个节点,从主要的

注:

  • 我们建议短暂的停机时间在过渡到数据库写锁定期间。这将避免一些节点使用新的锁定机制,而其他节点仍在使用旧系统的情况。如果发生这种情况,您的集群将分成两组,这可能导致其中一组中断影响或者更糟的是,数据损坏问题。例如,当一个节点将二进制文件上传到a / b / bin.txt文件,另一个可能会删除a / b的方向。如果没有全集群锁定,这可能会导致该文件存在但没有其目录的情况。

  • 你的新的数据库锁定机制会添加自己的连接池,默认为pool.max.active价值。但是,您可能需要这样做调整您的数据库连接限制以接受更多连接。这样做时,您应该将每个节点的并发连接数计算为每个节点配置的连接数乘以集群中的节点数。数据库应该接受每个节点配置的连接数乘以集群中的节点数。

默认情况下,人工版本6.2及以上使用数据库锁定机制来提供额外的健壮性和稳定性。

2.会话共享

支持配置会话共享在本地,而代价是你必须启用会话保持(也就是会话关联)用于负载均衡器。通过此更改,节点之间的所有内部消息传播都将被重构并通过休息,这将允许您将此机制放置在ssl支持的web服务器避免未加密的通信如果在每个节点或负载均衡器上启用了SSL/TLS,则通过TCP传输。

产品说明:

  • 启用粘性的会话为您的负载均衡器。的示例AWS ELB是可用的在这里
  • 设置属性jvm artifactory.map.provider.type =artifactory.system.properties
  • 重新启动每个节点。