Transport Client 对比 Node Client
如果使用Java,您可能想知道何时使用Transport Client与Node Client。如本书开头所讨论的,Transport Client充当集群和应用程序之间的通信层。它知道API,并可以自动在节点之间循环,为您侦听群集等等。但它是集群外部的,类似于REST客户端。
另一方面,Node Client实际上是集群中的一个节点(但不持有数据,不能成为主节点)。因为它是一个节点,它知道整个群集状态(所有节点驻留在哪里,哪些碎片在哪些节点中生效,等等)。这意味着它可以执行少一个网络跳的API。
有两个客户端的用例:
如果要将应用程序与集群解耦,Transport Client是理想的。例如,如果应用程序快速创建和销毁与集群的连接,则Transport Client比Node Client“轻”,因为它不是集群的一部分。
同样,如果您需要创建数千个连接,则不希望有数千个Node Client加入群集。 Transport Client将是一个更好的选择。
另一方面,如果你只需要几个长期的,持久的连接对象到集群,一个Node Client可以更高效一点,因为它知道集群布局。但它将您的应用程序绑定到集群中,因此从防火墙的角度可能会出现问题。