【发布时间】:2018-10-28 06:48:29
【问题描述】:
我从official DSE doc 中读到了这篇文章,但没有深入了解如何。有人可以解释或提供任何链接吗?
【问题讨论】:
标签: cassandra datastax-enterprise
我从official DSE doc 中读到了这篇文章,但没有深入了解如何。有人可以解释或提供任何链接吗?
【问题讨论】:
标签: cassandra datastax-enterprise
负载平衡器内置于驱动程序/连接中。例如,此处的文档中解释了 Java 驱动程序“循环”行为:
https://docs.datastax.com/en/developer/java-driver-dse/1.6/manual/load_balancing/
这里也有解释:
https://docs.datastax.com/en/developer/java-driver/3.1/manual/load_balancing/
【讨论】:
此类信息最好查看architecture guide。
有多个地方可以被视为某种负载平衡器。首先 - 您可以向集群中的任何节点发送请求,该节点将充当“协调器”,将请求重新发送到实际拥有数据的节点。因为这不是最优化的,驱动程序提供了所谓的令牌感知负载平衡策略,其中驱动程序能够从数据中推断出哪些节点负责处理它们,并向其中一个节点发送请求,根据其他信息选择(由其他负载平衡策略提供)。
在多个数据中心的情况下,驱动程序和 Cassandra 本身能够在“本地”不可用的情况下向“远程”DC 发送请求(远程和本地的概念是特定于消费者的)。但在这种情况下,其他一些因素将发挥作用——例如,如果您具有LOCAL_ 一致性级别,那么您的请求将不会被发送到“远程”数据中心。
谈到应用程序设计 - 您可以在应用程序层之前使用负载均衡器,该应用程序层将连接到其“本地”数据中心中的 Cassandra 集群,并使用LOCAL_ 一致性级别来执行它们的操作。如果其中一个 DC 发生停机,负载均衡器应停止向该 DC 中的应用层发送流量。
【讨论】: