es 在并发写入的情况下,为啥会出现部分数据丢失的情况?
1
90928yao Sep 14, 2020
压测的时候?
|
2
des Sep 14, 2020
看看有没有报错什么的,es 的内部队列满了会暂时拒绝请求
|
4
a7217107 OP 用的 x-pack
|
5
Macuilxochitl Sep 14, 2020
关注一下错误率
|
6
wakzz Sep 14, 2020
贴一下返回的报错报文以及 es 的报错日志
|
7
yoqu Sep 14, 2020
建议通过消息队列异步入 es
|
8
syncnano Sep 14, 2020
只要涉及到写入 es 的,就一定要关注写入失败的情况,参考:
`_cat/thread_pool?v` |
9
kefirzhang Sep 14, 2020
再没有写入 ack 确认,失败重试的情况下,如果高并发写入达到 es 瓶颈肯定会拒绝后续请求造成数据丢失。
可以采用写到 redis 的队列里面用 logstash 读取。或者写到 kafak 里面 , 其实原理一样 写到一个缓存队列,削峰填谷! |
10
manaBurn Sep 14, 2020
如果是同一个文档,是因为 es 的乐观锁机制造成的版本冲突吧?
|