【问题标题】:Elasticsearch Single Node ReliabilityElasticsearch 单节点可靠性
【发布时间】:2015-11-01 07:01:19
【问题描述】:

我正在考虑将 AWS 的预制 Elasticsearch 服务用作单节点集群,以允许在 100MM 小记录(人名和他们的公司等,以及其他属性)的记录集中进行搜索。阅读量很大,每三个月更新一次。

https://aws.amazon.com/elasticsearch-service/

我只想使用一个节点来节省亚马逊成本。

我将继续在 AWS RDS 中掌握我的数据,因此这是我在发生“灾难”时可以从中恢复的地方。

是否可以认为单节点 Elasticsearch 服务器与单节点 MySQL 数据库一样可靠(在总体方案中相当可靠)?

【问题讨论】:

    标签: amazon-web-services elasticsearch amazon-elasticsearch


    【解决方案1】:

    理论上,可靠性can defined as是成功的概率,在其他方面为1-probability of failure

    众所周知,no systems operate with 100% reliability 甚至在单点故障(=单节点)的情况下更是如此,即故障概率因此永远不会为 0,即使对于亚马逊怪物也是如此。所以,根据绝对论,单个节点不可靠

    话虽如此,归根结底,可靠性的概念始终是相对的(与上面定义的绝对意义相反),这意味着最终由您来决定您认为什么可靠与否,即您不相信。不在乎您的节点是否在 3 分钟内每天/每周/每月宕机一次,但仍能达到 99.999% 的正常运行时间。

    另一个非常具体的问题是,您需要确定单个节点是否可以容纳 100MM 文档,并且仍然可以服务搜索请求、聚合以及您拥有的东西,速度是否足够快,并且仍然对您的用户有益。

    要达到的第一个限制通常是堆的数量,而不是supposed to be higher than 30.5GB。粗略地说,您需要弄清楚您的 100MM 文档是否可以保存在具有 30.5 GB 堆的单个节点中。测试很简单:配置你的 ES 服务,用你的所有文档加载它,并运行一些模拟用户预期负载的负载测试,你会很快发现你是否内存不足以及这个问题的答案最终会很简单。

    【讨论】:

    • 根据我的经验,如果 Java 堆空间受到限制(甚至可能不是),则必须使用 doc_values,在一个实例中我错误地没有使用它们和查询时间从 10 毫秒跃升至 3 秒,因为字段数据缓存必须不断被丢弃和重建。
    • 绝对同意。这绝对是有道理的,尽管在这种情况下,@Kong 想要使用具有 100MM 文档的单个节点,所以在某些时候,即使使用 doc_values 和你有什么,单个节点可能过于受限......或没有。但找出答案的唯一方法是测试它。
    猜你喜欢
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    相关资源
    最近更新 更多