在每隔几个小时运行后,我从流利弹性搜索中收到以下错误:
can't select channel size is 0 for types: [RECOVERY, BULK, STATE]
看起来错误来自这里:
elasticsearch/core/src/main/java/org/elasticsearch/transport/ConnectionProfile.java
<T> T getChannel(T[] channels) {
if (length == 0) {
throw new IllegalStateException("can't select channel size is 0 for types: " + types);
}
assert channels.length >= offset + length : "illegal size: " + channels.length + " expected >= " + (offset + length);
return channels[offset + Math.floorMod(counter.incrementAndGet(), length)];
}
此错误的原因是什么?我该如何解决?
这是我精通的设置:
<match *.**>
buffer_chunk_limit 64m
buffer_queue_limit 500
type elasticsearch
hosts index1:9200,index2:9200
logstash_format true
flush_interval 30s
request_timeout 100s
flush_at_shutdown true
buffer_type file
buffer_path /opt/buffer/td-agent/all.*.buffer
retry_limit 17
num_threads 8
reload_on_failure true
reload_connections true
reconnect_on_error true
</match>
我正在使用:
ruby gems:
fluent-plugin-elasticsearch-1.9.5
elasticsearch-api-5.0.4
elasticsearch-5.0.4
elasticsearch-transport-5.0.4
elastic search:
elasticsearch-5.5.2
fluentd:
td-agent-2.3.2-0.el6.x86_64