gpt4 book ai didi

search - 使用 elasticsearch 集群和 Web 服务器集群避免单点故障的最佳方法

转载 作者:行者123 更新时间:2023-12-02 22:42:22 27 4
gpt4 key购买 nike

我们有一个在 AWS 上运行的 Web 应用程序,其架构如下:

  • 1 个具有 2 个数据节点的 elasticseach 集群
  • 1 个自动扩展负载平衡的 Web 服务器集群

  • 由于 elasticsearch 做了一些巧妙的内部负载平衡,我们可以将所有 Web 服务器指向其中一个数据节点。但这会产生单点故障——如果该节点出现故障,那么我将不会得到任何查询结果。

    到目前为止,我的解决方案是让 elasticsearch 在每个 Web 服务器上作为非数据节点运行。每个 Web 服务器查询其本地 elasticsearch 节点,该节点又将请求发送到数据节点之一。这似乎是 elasticsearch website 上的建议方法

    这很好,因为如果其中一个数据节点以某种方式发生故障,我们不会失去提供搜索查询的能力。但是,这确实意味着 elasticsearch 正在使用每个 Web 服务器上的资源,如果我们迁移到使用 elastic beanstalk(我很想这样做),那么我们需要了解如何在我们的 Web 实例上安装 elasticsearch。编辑:我现在已经成功了,但还没有弄清楚如何为每个环境指定不同的配置。

    是否有另一种方法可以避免单点故障,而无需在每个 Web 服务器上运行 elasticsearch?

    我曾考虑在数据节点前使用负载均衡器来处理来自 Web 服务器的查询,但这也意味着将集群开放给公共(public)访问,而无需设置 VPC 来限制访问。

    我缺少一个更简单的解决方案吗?

    最佳答案

    我认为这不能直接回答您的问题,但如果您仍然可以在 Web 服务器节点上运行 ES,您可以自定义使用 .ebextensions mechanism 安装的软件。 ,它允许您在新的 Elastic Beanstalk 实例启动时运行脚本和/或安装包。如果这还不够,您可以使用自定义 AMI 启动您的 Elastic Beanstalk 实例。

    此外,您可能不知道您可以在 VPC 中运行 Elastic Beanstalk。

    关于search - 使用 elasticsearch 集群和 Web 服务器集群避免单点故障的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18784370/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com