簡體   English   中英

Elasticsearch 集群負載均衡最佳實踐

[英]Elasticsearch cluster load balancing best practices

我想了解我是否需要將負載均衡器作為 Elasticsearch 部署的一部分,或者是否將其視為一種好習慣。

據我了解,高級 rest 客戶端以及 Elasticsearch 的傳輸客戶端可以管理節點之間的負載平衡。 所以客戶端需要逗號分隔的端點列表,就是這樣。

中間還有負載均衡器有什么意義嗎? 對於哪種情況可能有用? 每種方法的優缺點?

答案取決於您的架構以及您的要求。 您需要負載均衡器來實現高可用性嗎? 還是出於性能原因/可擴展性? 或兩者?

與許多其他分布式系統一樣,Elasticsearch 具有自己的協議和語義,可以在多個節點之間分配負載並管理故障轉移。

您可以使用這些語義來配置節點,使節點可以僅執行協調器的角色——有效地充當搜索請求或批量索引請求等重型操作的負載平衡器。

Elasticsearch 還具有自己的內置協議,用於在發生故障時選舉新的主節點——再次有效地發揮負載平衡器的作用。

一般來說,我建議您使用本機功能來實現您的目標,而不是通過在其前面引入另一種技術來增加更多復雜性。

如果您想要一個穩定的 URL 用於您的集群,請配置您的 DNS 服務器以實現該目標。 雲提供商托管的集群應該已經具備這樣的功能,否則你可以通過一些努力來配置它。

通常 ES 集群中的外部負載均衡器不是很常見,也不需要,因為 Elasticsearch 已經做了負載均衡,默認情況下,ES 集群中的所有數據節點都充當協調角色,但如果你想提高性能,你可以有專門的 co - 協調節點也是如此。

如果您的目標是擁有一個智能負載平衡來提高性能,而不是使用 ES 6.X 或更高版本(默認情況下在 7.X 上打開),您可以在不進行任何外部配置的情況下直接使用它,通過使用自適應副本選擇

在您的請求到達 ES 之前,擁有另一個負載均衡器意味着額外的配置和另一個層,所以恕我直言,使用它沒有任何意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM