我使用PHP Elasticsearch客户端,我总是得到这样的异常
{
"took": 17,
"timed_out": false,
"total": 3,
"updated": 2,
"deleted": 0,
"batches": 1,
"version_conflicts": 1,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"failures": [{
"index": "questions_statistics",
"type": "_doc",
"id": "IwSmq3kB2OehDv3R2YeP",
"cause": {
"type": "version_conflict_engine_exception",
"reason": "[IwSmq3kB2OehDv3R2YeP]: version conflict, required seqNo [1927448], primary term [1]. current document has seqNo [1927450] and primary term [1]",
"index_uuid": "HW9XMxZtTLi2_Iv_Ryl01w",
"shard": "0",
"index": "questions_statistics"
},
"status": 409
}]
}这看起来像是乐观锁定导致的版本冲突。我认为这种类型的异常不应该被处理。我应该捕获并记录日志吗?或者有其他方法来处理它?
发布于 2021-06-01 16:58:21
这取决于您如何处理应用程序中的版本冲突,如果您正在使用Elasticsearch Last Win冲突解决方案,您可以通过在Elasticsearch中提供手动版本来忽略版本冲突,但如果您想确保您正在写入Elasticsearch的文档已经具有最新的字段值版本冲突,则可以帮助您避免更新之前更新的文档。关于日志记录,在系统中保留所有类型的失败操作总是很好的。
https://stackoverflow.com/questions/67783266
复制相似问题