elasticsearch - Elasticsearch 最佳实践:在 Elasticsearch 7 前面实现 Ha Proxy 是个好主意吗?
问题描述
在 Elasticsearch Spark/Hadoop 文档中,我可以阅读以下选项:
es.nodes.wan.only (default : false)
连接器是否用于 WAN 上云/受限环境中的 Elasticsearch 实例,例如 Amazon Web Services。在这种模式下,连接器禁用发现,并且仅在所有操作(包括读取和写入)期间通过声明的 es.nodes 进行连接。请注意,在此模式下,性能受到很大影响。
我的云提供商在 Elasticsearch 之上放置了一个 Ha 代理。所以,我必须将上一个选项设置为true
.
所以基本上,我对这种架构的理解是,我只有一个 URL 端点来连接到 ES,并且由于 Ha Proxy 具有一些高可用性(和负载平衡),但另一方面,它损害了性能很多 ?
您能否根据您的经验澄清一下,Elasticsearch 之上的 Ha Proxy 是否是一种好的做法(或不是)?
谢谢
解决方案
所以基本上,我对这种架构的理解是,我只有一个 URL 端点可以连接到 ES,并且由于 Ha Proxy,我有一些高可用性(和负载平衡)
是的,很多项目(我参与过)确实将 HAProxy 放在 Elasticsearch 前面,然后只将请求发送到单个节点以进行负载平衡。
但另一方面,它对性能的影响很大吗?
不,它反过来。
这就像拥有 ELK 堆栈,因为 logstash 的监控管道会抛出错误,因为它无法恢复负载均衡器后面的已终止连接。sniffing => false
如果您将选项设置为true
.
您能否根据您的经验澄清一下,Elasticsearch 之上的 Ha Proxy 是否是一种好的做法(或不是)?
是的,在 ES 前面有一个负载均衡器绝对是个好主意。
推荐阅读
- c - For 循环没有迭代正确的次数
- sharepoint - 如何通过 OAuth2 授予对共享点站点上的读/写文件的访问权限
- node.js - 在 mongoDB 和 Node.js 中使用聚合时出错
- ios - 升级到 Firebase Crashlytics iOS SDK 目标 c,未找到 @import FirebaseCrashlytics
- javascript - 单击按钮时,我的页面重新加载原因
- android - 滑翔清除在 onDestroyFragment() 中不起作用
- android - Facebook Android 应用程序无法接受 EXTRA_TEXT 字段
- android - 后台运行函数
- apollo-client - Apollo 客户端错误 | “RestLink”类型不可分配给“ApolloLink”类型
- java - Maven - 错误无法找到或加载主类