使用MarkLogic客户端api实现MarkLogic负载平衡

使用MarkLogic客户端api实现MarkLogic负载平衡,marklogic,marklogic-8,Marklogic,Marklogic 8,我是想征求一些意见,但还没想到 我们的MarkLogic服务器版本为8.0-4,MarkLogic客户端api版本为4.1.0 有一种官方的方式来配置MarkLogic Clinet DatabaseClientFactory.newClient(host, port, new DigestAuthContext(user, passwd)); 客户端的配置很容易理解。它可以在我们的项目中为我工作 但是,对于主机,我有点困惑 我们的PORD有三个主机。在MarkLogic配置页面中,我可以找到

我是想征求一些意见,但还没想到

我们的MarkLogic服务器版本为8.0-4,MarkLogic客户端api版本为4.1.0

有一种官方的方式来配置MarkLogic Clinet

DatabaseClientFactory.newClient(host, port, new DigestAuthContext(user, passwd));
客户端的配置很容易理解。它可以在我们的项目中为我工作

但是,对于
主机
,我有点困惑

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

  • 组:默认值
  • 主持人:qwelap1 qwelap2 qwelap3
我只知道marklogic客户端api中的这个配置

.newClient("qwelap1", "8888", new DigestAuthContext("admin", "admin"));
我可以呼叫三台服务器而不是一台服务器吗?
我是否应该使用其他框架来实现此功能或其他功能?

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


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

若要添加此项,请在服务器1退出时自动进行故障切换:将负载平衡器置于客户端和MarkLogic之间。如前所述,MarkLogic将自行确定从何处获取和放置数据,而不管您是通过哪台服务器获取数据的。您还可以使用客户端和MarkLogic之间的负载平衡器在一定程度上分散评估负载。