弹性搜索网关超时 504
Elasticsearch Gateway timeout 504
我更新了一些索引映射,只需将 keyword
字段添加到文本 属性 并重新加载 Kibana 的索引模式。我被告知我应该在最后 运行 这个命令:
POST 11ad.pi.prod.test-case-18/_update_by_query?conflicts=proceed
执行后出现错误:
{
"statusCode": 504,
"error": "Gateway Time-out",
"message": "Client request timeout"
}
是不是超时时间太短了?怎么改?
如果您的索引很大,这是正常的。您不需要看到任何超时,任务仍在后台进行。
您可以通过运行GET _tasks?actions=*byquery&detailed
查询任务查询更新状态。
您可以使用以下代码更新 TransportClient 的连接超时值:
Settings.builder().put("transport.tcp.connect_timeout", "240s")
完整的 TransportClient 代码:
Settings settings = Settings.builder()
.put(ElasticSearchReservedWords.CLUSTER_NAME.getText(), LogHandlerConstants.CLUSTER_NAME)
.put(ElasticSearchReservedWords.LISTENER_TRANSPORT_SNIFF.getText(), true)
.put("transport.tcp.connect_timeout", "240s")
.build();
Client transportClient = new PreBuiltTransportClient(settings)
.addTransportAddresses(
new TransportAddress("127.0.0.1"), "9300"));
每个 Elasticsearch 版本都有不同的配置键。您可以阅读此文档以了解您可以更改的其他设置:
https://www.elastic.co/guide/en/elasticsearch/reference/6.4/modules-transport.html
更改 kibana.yml。
添加行:
elasticsearch.requestTimeout: 90000 # default 30s
我更新了一些索引映射,只需将 keyword
字段添加到文本 属性 并重新加载 Kibana 的索引模式。我被告知我应该在最后 运行 这个命令:
POST 11ad.pi.prod.test-case-18/_update_by_query?conflicts=proceed
执行后出现错误:
{
"statusCode": 504,
"error": "Gateway Time-out",
"message": "Client request timeout"
}
是不是超时时间太短了?怎么改?
如果您的索引很大,这是正常的。您不需要看到任何超时,任务仍在后台进行。
您可以通过运行GET _tasks?actions=*byquery&detailed
查询任务查询更新状态。
您可以使用以下代码更新 TransportClient 的连接超时值:
Settings.builder().put("transport.tcp.connect_timeout", "240s")
完整的 TransportClient 代码:
Settings settings = Settings.builder()
.put(ElasticSearchReservedWords.CLUSTER_NAME.getText(), LogHandlerConstants.CLUSTER_NAME)
.put(ElasticSearchReservedWords.LISTENER_TRANSPORT_SNIFF.getText(), true)
.put("transport.tcp.connect_timeout", "240s")
.build();
Client transportClient = new PreBuiltTransportClient(settings)
.addTransportAddresses(
new TransportAddress("127.0.0.1"), "9300"));
每个 Elasticsearch 版本都有不同的配置键。您可以阅读此文档以了解您可以更改的其他设置:
https://www.elastic.co/guide/en/elasticsearch/reference/6.4/modules-transport.html
更改 kibana.yml。 添加行:
elasticsearch.requestTimeout: 90000 # default 30s