微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

弹性搜索批量写入请求最终来自集群的同一节点上,导致集群拒绝写入

如何解决弹性搜索批量写入请求最终来自集群的同一节点上,导致集群拒绝写入

我有一个带有 11 个节点的 ElasticSearch 2.1.1 集群。 大多数时候一切都很好,但是当负载增加(从多个 Storm 拓扑写入数据)时,似乎所有的写请求都转到同一个节点,最终导致一个节点超负荷工作,他的队列超过了限制,而其他节点只是坐在那里什么都不做。

node bulk.active bulk.queue
1       0           0
2       0           0
3       32          114
4       0           0
.and so on

过了一段时间,集群开始拒绝写请求:

 nested: EsRejectedExecutionException[rejected execution
of org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryPhase$1@7e368c0b on EsThreadPoolExecutor[bulk,queue capacity = 50,org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@13ff1612[Running,pool size = 32,active threads = 32,queued tasks =
 55,completed tasks = 249363622]

负载过去后会恢复,但每次负载增加都会发生同样的事情。

有人遇到过这种情况吗?可能是什么原因?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。