日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/4/15 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记一次中台数据传输同步Elasticsearch失败的车祸现场 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 一、背景

  • 二、題外話

  • 三、開(kāi)始排查

  • 四、為什么索引處于只讀狀態(tài)呢?

  • 五、如何解決

一、背景

前幾天小哈在釘釘群里收到重慶業(yè)務(wù)線反饋,說(shuō)是中臺(tái)數(shù)據(jù)傳輸中間件在同步 Mysql 增量數(shù)據(jù)到 Elasticsearch 總是失敗。

?

二、題外話

你說(shuō)的這個(gè)數(shù)據(jù)傳輸和阿里云提供的數(shù)據(jù)傳輸DTS是一個(gè)東西嗎?

?

不是!上面說(shuō)的數(shù)據(jù)傳輸是小哈所在的中臺(tái)研發(fā)部自主研發(fā)的中間件,目的是為了取代各業(yè)務(wù)線對(duì)阿里DTS同步功能的依賴(lài)!

目前來(lái)說(shuō),數(shù)據(jù)傳輸還是要依賴(lài)于阿里開(kāi)源 Canal, 或者阿里 DTS,依賴(lài)的目的是實(shí)現(xiàn)對(duì) Mysql 數(shù)據(jù)庫(kù) binlog 增量訂閱。

?

以上網(wǎng)絡(luò)架構(gòu)示例圖中,中臺(tái)數(shù)據(jù)傳輸充當(dāng)一個(gè) binlog 事件消費(fèi)者的角色,通過(guò)自定義規(guī)則映射,數(shù)據(jù)加工,分發(fā)并最終同步到目標(biāo)源 Elasticsearch 中。

三、開(kāi)始排查

回歸正題,出了問(wèn)題,立馬趕緊通過(guò)跳板機(jī)連上數(shù)據(jù)傳輸所在的服務(wù)器,開(kāi)始查看日志:

?

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

提示錯(cuò)誤也很明顯:ES 索引處于只讀狀態(tài)!!在和業(yè)務(wù)組溝通以后,發(fā)現(xiàn)需要同步的目標(biāo)索引有兩個(gè),一個(gè)商品索引(充當(dāng)主表),一個(gè)商品屬性索引(充當(dāng)商品從表),從表同步是 ok 的,也就是說(shuō)商品屬性索引非只讀狀態(tài),寫(xiě)入正常,僅僅是商品索引處于只讀狀態(tài),最終未能正常同步數(shù)據(jù)。

四、為什么索引處于只讀狀態(tài)呢?

什么原因?qū)е碌乃饕蛔x的?小哈開(kāi)始翻閱 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 在決定是否分配新分片給該節(jié)點(diǎn),或?qū)υ摴?jié)點(diǎn)重新定位分片之前,會(huì)先判斷該節(jié)點(diǎn)存儲(chǔ)空間是否足夠,如果說(shuō)磁盤(pán)空間的使用率已經(jīng)超過(guò) 95%,ES 會(huì)自動(dòng)將索引 index置為 read-only 狀態(tài)。

于是,讓運(yùn)維看下 ES 機(jī)器的磁盤(pán)空間是否足夠,運(yùn)維反饋說(shuō):前兩天就是因?yàn)榇疟P(pán)不足告警,剛剛擴(kuò)的容,肯定是夠的!

真相大白了!

前兩天磁盤(pán)空間不足,那個(gè)時(shí)候,商品索引剛好有寫(xiě)入的操作,由于 ES 的保護(hù)機(jī)制,將該索引置為了只讀狀態(tài)。

五、如何解決

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

處于只讀狀態(tài)的索引,只能被查詢(xún)或者刪除。而 ES 還不會(huì)自動(dòng)將索引狀態(tài)切換回來(lái),就需要我們手動(dòng)切換了:

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

?

對(duì)商品索引執(zhí)行如上命令后。讓業(yè)務(wù)組再次同步數(shù)據(jù),一切正常了。

轉(zhuǎn)載自:小哈學(xué)JAVA公眾號(hào)

轉(zhuǎn)載于:https://www.cnblogs.com/technologykai/articles/10984635.html

總結(jié)

以上是生活随笔為你收集整理的记一次中台数据传输同步Elasticsearch失败的车祸现场的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。