2

我想使用AWS的罐头Elasticsearch服务为单节点集群,以允许在一个记录集的100MM小志(人的名字和他们的公司等,以及其他属性)进行搜索。非常重读,每三个月更新一次。Elasticsearch单节点可靠性

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

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

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

单个节点Elasticsearch服务器可以被认为像说单个节点MySQL DB一样可靠吗?在总体方案中相当可靠?

回答

2

从理论上讲,可靠性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.5GB堆的单个节点中。这是微不足道的测试:提供您的ES的服务,与您的所有文件加载和运行一些负载测试模拟用户的预期负载,你很快就会发现,如果你耗尽内存或不和这个问题的答案最后会很简单。

+0

30.5GB的限制是一个伟大的指针! – Kong

+0

在我的经验,使用'doc_values'是必不可少的,如果Java堆空间有限(甚至如果不是),在一个实例错误我不使用他们,查询时间从10毫秒跃升至3秒因为现场数据缓存必须不断重新构建和重新构建。 – NikoNyrh

+0

绝对同意。这肯定是有道理的,但在这种情况下,@Kong想要使用一个单一节点100mm的文档,所以在某些时候甚至doc_values和你有什么话,单个节点可能过于限制......与否。但要找出答案,唯一的办法就是测试一下。 – Val