MarkLogic 负载平衡与 marklogic-client-api

MarkLogic load balance with marklogic-client-api

我正在向 How Can I use Apache to load balance Marklogic Cluster 寻求一些建议,但还没有想法。

我们的MarkLogic Server版本是8.0-4,而marklogic-client-api版本是4.1.0

有官方的方法来配置 MarkLogic Clinet

DatabaseClientFactory.newClient(host, port, new DigestAuthContext(user, passwd));

客户端的配置很容易理解。它可以在我们的项目中为我工作。

但是,对于host,我有点困惑。

我们的 PORD 中有三台主机。在 MarkLogic 配置页面中,我可以找到以下摘要:

我只知道marklogic-client-api

中的这个配置
.newClient("qwelap1", "8888", new DigestAuthContext("admin", "admin"));

我可以调用三台服务器而不是一台服务器吗? 我应该使用其他框架来实现这个还是其他?

如果您的代码和 MarkLogic 之间有一个负载平衡器,那么请在您的 newClient 调用中使用负载平衡器主机名或 IP。如果负载平衡器位于您的代码和外部代码之间,则使用任何一台服务器的主机名。在常见配置中,您连接到哪个 ML 主机并不重要。

我强烈建议您避免调用 API,因为它会在调用之间隐式或显式地保持事务处于打开状态。配置负载均衡器以可靠地实现跨请求事务所需的会话亲和性可能很困难或不可能。最好假设负载平衡器不实现亲和力并在客户端代码中使用该约束。