目录

  • 一、背景

  • 二、题外话

  • 三、开始排查

  • 四、为什么索引处于只读状态呢?

  • 五、如何解决

一、背景

前几天小哈在钉钉群里收到重庆业务线反馈,说是中台数据传输中间件在同步 Mysql 增量数据到 Elasticsearch 总是失败。

二、题外话

你说的这个数据传输和阿里云提供的数据传输DTS是一个东西吗?

不是!上面说的数据传输是小哈所在的中台研发部自主研发的中间件,目的是为了取代各业务线对阿里DTS同步功能的依赖!

目前来说,数据传输还是要依赖于阿里开源 Canal, 或者阿里 DTS,依赖的目的是实现对 Mysql 数据库 binlog 增量订阅。

以上网络架构示例图中,中台数据传输充当一个 binlog 事件消费者的角色,通过自定义规则映射,数据加工,分发并最终同步到目标源 Elasticsearch 中。

三、开始排查

回归正题,出了问题,立马赶紧通过跳板机连上数据传输所在的服务器,开始查看日志:

看到日志中存在大量的 [FORBIDDEN/12/index read-only/allowdelete(api)] 错误!!

提示错误也很明显:ES 索引处于只读状态!!在和业务组沟通以后,发现需要同步的目标索引有两个,一个商品索引(充当主表),一个商品属性索引(充当商品从表),从表同步是 ok 的,也就是说商品属性索引非只读状态,写入正常,仅仅是商品索引处于只读状态,最终未能正常同步数据。

四、为什么索引处于只读状态呢?

什么原因导致的索引只读的?小哈开始翻阅 Elasticsearch 官方文档, 原文如下:

Elasticsearch considers the available disk space on a node before deciding whether to allocate new shards to that node or to actively relocate shards away from that node.

Elasticsearch 在决定是否分配新分片给该节点,或对该节点重新定位分片之前,会先判断该节点存储空间是否足够,如果说磁盘空间的使用率已经超过 95%,ES 会自动将索引 index置为 read-only 状态。

于是,让运维看下 ES 机器的磁盘空间是否足够,运维反馈说:前两天就是因为磁盘不足告警,刚刚扩的容,肯定是够的!

真相大白了!

前两天磁盘空间不足,那个时候,商品索引刚好有写入的操作,由于 ES 的保护机制,将该索引置为了只读状态。

五、如何解决

原因找到了!要如何解决呢?

处于只读状态的索引,只能被查询或者删除。而 ES 还不会自动将索引状态切换回来,就需要我们手动切换了:

PUT /<yourindex>/_settings{"index.blocks.read_only_allow_delete": null}

对商品索引执行如上命令后。让业务组再次同步数据,一切正常了。

转载自:小哈学JAVA公众号

转载于:https://www.cnblogs.com/technologykai/articles/10984635.html

记一次中台数据传输同步Elasticsearch失败的车祸现场相关推荐

  1. docker启动elasticsearch失败--jvm内存不足解决方案

    docker启动elasticsearch失败--jvm内存不足解决方案 参考文章: (1)docker启动elasticsearch失败--jvm内存不足解决方案 (2)https://www.cn ...

  2. win10文件同步到服务器失败,win10系统同步时间同步失败的解决方法

    电脑对日常生活的重要性小编就不多说了,可是一旦遇到win10系统同步时间同步失败的情况,想必大家都遇到过win10系统同步时间同步失败的情况吧,那么应该怎么处理win10系统同步时间同步失败呢?我们依 ...

  3. win10文件同步到服务器失败,手把手为你解决win10系统同步时间同步失败的思路...

    我们在使用win10系统的过程中,经常需要对win10系统同步时间同步失败的情况,想必大家都遇到过win10系统同步时间同步失败的情况吧,那么应该怎么处理win10系统同步时间同步失败呢?我们依照在W ...

  4. hbuilderx升级3.6.5版本后运行到手机端同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示

    问题1: hbuilderx升级3.6.5版本后运行到手机端同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示. 解决问题指路. https://uniapp.dclou ...

  5. onenote冲突服务器显示,ONENOTE同步分区失败,显示“正在等待另一个设备完成上载您的笔记”?...

    ONENOTE同步分区失败,显示"正在等待另一个设备完成上载您的笔记"? 一直在用OneNote,不过之前都没在意分区问题,就是一直添加页面放很多东西进去. 问题从昨晚开始出现的. ...

  6. uc显示无服务器连接,ucenter安装心得和通信失败,同步登陆失败采坑以及解决方法...

    不墨迹,直接说重点:(配置了uc的网站不要再去采集了,否则uid不一致,新用户永远无法同步登录了) 下载系统后留意文件夹里是否带了uc的源码 api是接口文件夹,uc_client是uc的客户端文件, ...

  7. 记一次.Net Core程序启动失败的排查过程

    阅文时长 | 2分钟 字数统计 | 3212字符 主要内容 | 1.引言&背景 2.排查.NetCore启动失败详细过程 3.声明与参考资料 『记一次.Net Core程序启动失败的排查过程』 ...

  8. [转]记一次构建SaaS平台项目失败后的反思

    记一次构建SaaS平台项目失败后的反思 前言: 笔者从2017年起开始着手将公司现有的软件系统改造成多租户模式,以降低整个系统的运营成本.但最后这个项目以失败告终.今天,我将对这个SaaS项目是如何走 ...

  9. 补丁服务器同步不上微软,WSUS服务器从Microsoft update同步更新失败

    WSUS服务器从Microsoft update同步更新失败,提示出现http错误 WebException: The underlying connection was closed: Could ...

最新文章

  1. 斯坦福大学UFLDL教程列表
  2. php数组array_push()和array_pop()以及array_shift()函数
  3. 2018.12.12 第九章虚拟内存
  4. ADS添加路由失败的处理办法
  5. php中的opendir函数,php中opendir函数的用法详解
  6. IDEA配置方法注释模板
  7. 网络防火墙开发二三事 转
  8. JavaScript重写alert方法
  9. Android 关于佳博和汉印蓝牙热敏打印机开发,android面试必看书籍
  10. long term recurrent convolutional networks for visual recognition and description
  11. 数据异常检测方法以及实际应用
  12. [BZOJ1933][Shoi2007]Bookcase 书柜的尺寸(DP)
  13. 谷歌的语音识别利器,最先造福了自己的员工
  14. web应用测试的具体流程(等保测评相关)
  15. 地球超2亿蛋白质结构全预测,AlphaFold引爆「蛋白质全宇宙」!
  16. Python: 棋盘放麦子
  17. 自动驾驶ADAS系统
  18. C++中LIstNode尾插法建立单链表
  19. 【visual studio 2017】基本使用过程,新手教学
  20. 《软件工程》学习记录(活动图状态图)

热门文章

  1. ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)
  2. CSS——京东首页实战总结
  3. dirname和basename命令
  4. FileReader上传图片
  5. 惠普武汉实习生面试-20110320
  6. Perlin Noise algorithms(备忘)
  7. css display属性理解
  8. 如何学习Linux性能优化?
  9. 忘记mysql数据库密码时进行修改方法
  10. 简单显示分配器的实现