Node.js 无法在弹性搜索中写入文档
我正在使用AWS的弹性搜索服务。我面临一个奇怪的问题。 弹性搜索节点似乎已变成只读。我查看了日志,但代码中没有一个错误。我正在获得成功。 我为nodejs使用弹性客户端Node.js 无法在弹性搜索中写入文档,node.js,amazon-web-services,
elasticsearch,Node.js,Amazon Web Services,
elasticsearch,我正在使用AWS的弹性搜索服务。我面临一个奇怪的问题。 弹性搜索节点似乎已变成只读。我查看了日志,但代码中没有一个错误。我正在获得成功。 我为nodejs使用弹性客户端 var elasticClient = new elasticsearch.Client(this.options); elasticClient.bulk(data); 数据如下所示: [ { "update": { "_index": "elastic_index", "_type":
var elasticClient = new elasticsearch.Client(this.options);
elasticClient.bulk(data);
数据如下所示:
[
{
"update": {
"_index": "elastic_index",
"_type": "user",
"_id": 22224689
}
},
{
"doc": {
"id": 22224689,
"first_name" : "John",
"last_name" : "Deo",
"email" : "jd@testemail.com",
"dob" : "1985-12-20",
"company_name" : "MPLLC",
"city" : "NY",
"state" : "Cal",
"country" : "USA",
"events" : [
{
"event_name" : "E1",
"date" : "2018-08-15",
"venue" : "Some custom venue"
}
]
},
"doc_as_upsert": true
}
]
从去年开始,它运行良好。突然停止在索引中记录用户
以下是我在ES中写作时遇到的一个例外:
{"error":{"root_cause":[{"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/8/index write (api)];"}],"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/8/index write (api)]
你知道是什么问题吗。我也有同样的问题。在我的例子中,问题在于索引生命周期策略。我有一个策略,在一定时间后将索引模式更改为“温暖”。出于某种原因,消息开始堆积在我的队列中,然后到达Elasticsearch集群。这会导致拒绝,因为索引模式“温暖”是只读状态。它需要处于“热”状态才能允许写作 解决方案是延长进入“温暖”模式的时间
另一个可能的原因是,如果群集节点开始耗尽内存或空间。那么来自ES的日志呢,您有权访问它吗?也许你的磁盘已满?可能吗?我没有访问ES日志的权限。我也会检查它们。有一次我看到最小空间是9GB,可用空间是18GB。是否有过流的可能性?运行
get\u nodes/stats/fs
时会得到什么?请在aws服务域上查看。在域仪表板上,您可以看到索引文档的数量以及已用和可用的存储空间。如果您有存储问题,那么只需调整ES域的配置,并将其扩展到另一台具有大型存储的计算机