集群环境下的行为

时间:2018-12-10 12:59:14

标签: marklogic

在集群环境中,我想负载平衡器基本上会将请求传递到一个E节点。 现在,当执行特定查询时,每个E节点如何理解要访问哪些D节点? 我对索引和缓存在集群环境下的工作方式感到困惑。

1 个答案:

答案 0 :(得分:2)

首先让我解释一下E节点和D节点之间的区别。

任何参与MarkLogic群集的主机都可能以E或D或什至两者的身份运行。

主机是否作为E节点由以下事实决定:该主机是否在与您相关的应用服务器所在的组中,例如公开所需的REST API的主机。因此,不仅是Admin或App-Service,而且通常是更具体的内容。

主机是否作为D节点运行取决于以下事实:它是否拥有与您相关的数据库的任何森林,例如是否拥有相关应用程序服务器使用的部分或全部数据的森林。因此,不仅是模块或文档,而且通常是更具体的内容。

集群中的所有主机都具有集群配置的完整副本。当一台主机需要位于另一台主机上的林中的数据时,MarkLogic将负责获取数据。

因此,D节点与数据存储相关,并且包括磁盘和内存中的索引。

E节点用于“评估”传入的请求,因此是“ E”。一些缓存发生在D节点上,但是扩展的树缓存通常位于E节点上,因此它们不需要访问其他主机即可获取数据。

通常,您不必担心所有这些事情,直到达到需要调整性能的阶段,这可以根据具体情况而定。如果可以的话,请MarkLogic帮助您。

现在,关于负载平衡,仅涉及传入请求,因此与E节点相关。如果所有主机都在一个组中(很常见),则每个主机都可以充当E节点。负载平衡器将需要知道这些机器的网络IP或名称,以中继流量。在虚拟化环境中,您可能希望更进一步,并允许自动缩放。 MarkLogic Query Service也与此有关。

HTH!