Cassandra如何设计来避免需要负载平衡器?

use*_*093 5 cassandra datastax-enterprise

我从DSE官方文档中读到了此内容,但并未深入了解如何操作。有人可以解释或提供任何链接吗?

Ale*_*Ott 8

最好查看有关此类信息的架构指南

有多个地方可以被视为某种负载平衡器。首先 - 您可以向集群中的任何节点发送请求,该节点将充当“协调器”,将请求重新发送到实际拥有数据的节点。因为这不是最优的,驱动程序提供了所谓的令牌感知负载平衡策略,驱动程序能够从数据中推断出哪些节点负责处理它们,并向其中一个节点发送请求,根据其他信息选择(由其他负载平衡策略贡献)。

在多个数据中心的情况下,如果“本地”不可用,驱动程序和 Cassandra 本身能够向“远程”DC 发送请求(远程和本地的概念特定于消费者)。但在这种情况下,一些其他因素将发挥作用 - 例如,如果您具有LOCAL_一致性级别,那么您的请求将不会被发送到“远程”数据中心。

谈论应用程序设计 - 您可以在应用程序层之前使用负载均衡器,该应用程序层将连接到其“本地”数据中心的 Cassandra 集群,并使用LOCAL_一致性级别来执行其操作。如果其中一个 DC 停机,负载均衡器应停止向该 DC 中的应用层发送流量。