背景:
7月9日因阿里云底层网络故障导致使用阿里云产品(redis,rocketmq等)均受影响,因为业务依赖mq异步将数据写入elasticsearch中,mq发送失败导致es部分数据丢失。丢失的数据需要从mysql中恢复到es中,毕竟es对外查询聚合的较多。
查询数据使用了kibbana工具,因为根据订单id查询es是否存在,订单id过多出现了一个请求体超长的错误。
{"statusCode":413,"error":"Request Entity Too Large","message":"Payload content length greater than maximum allowed: 1048576"}
修复数据用到es的客户端工具,写入es时报错
org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: type is missing;2: type is missing;
经查证es版本问题,客户端高版本7.10.0以上才可以
另一个版本相关的问题:
进程启动,es初始化时报错
java.lang.NoSuchFieldError: IGNORE_DEPRECATIONS
最终脚本部署到生产服务器跑数据,checkdata,add/update data