Elasticsearch:启动后NoShardAvailableActionException

 mobiledu2502882721 发布于 2022-12-04 03:08

我通过upstart启动我的Java应用程序和Elasticsearch 1.4.2.有时,当我重新启动服务器时,我会收到NoShardAvailableActionException前5个文档请求中的内容.

我的应用程序首先从Elasticsearch读取了一些文档,而Elasticsearch似乎还没有准备好.当我等待一点并重新启动我的应用程序时,一切正常.

如何检查我的Elasticsearch集群(我只有1个节点)是否已准备好获取文档?

我已经尝试检查群集状态,但即使它已经是黄色,我有时会得到NoShardAvailableActionException:

private static void checkClusterStateNotRed() throws Exception {
    while(clusterState() == ClusterHealthStatus.RED) {
        Logger.info("Elasticsearch cluster state is red);
        Thread.sleep(1000);
    }
}

private static ClusterHealthStatus clusterState() throws Exception {
    return ElasticsearchClient.getInstance()
            .admin().cluster()
            .clusterStats(new ClusterStatsRequest())
            .get()
            .getStatus();
}

Vineeth Moha.. 6

我觉得你不是在等待碎片被恢复并准备开放请求.通常需要一些时间.

client.admin().cluster().prepareHealth().setWaitForYellowStatus().execute().actionGet(5000)

在拨打电话之前使用此代码.在完全恢复分片并且群集恢复到至少黄色状态之前,这将等待至少5秒.

1 个回答
  • 我觉得你不是在等待碎片被恢复并准备开放请求.通常需要一些时间.

    client.admin().cluster().prepareHealth().setWaitForYellowStatus().execute().actionGet(5000)
    

    在拨打电话之前使用此代码.在完全恢复分片并且群集恢复到至少黄色状态之前,这将等待至少5秒.

    2022-12-11 03:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有