91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于canal client實現canal同步es的示例分析

發布時間:2021-11-24 14:33:09 來源:億速云 閱讀:518 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關基于canal client實現canal同步es的示例分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

canal是阿里開源的一款純java語言的mysql增量訂閱工具,主要是偽裝成slave節點,向mysql發送 dump協議官方原理如圖:

基于canal client實現canal同步es的示例分析

官方的解釋:    

                          server代表一個canal運行實例,對應于一個jvm

                          instance對應于一個數據隊列 (1個server對應1..n個instance)

個人是這么理解的instance當做一個mq中的topic隊列(kafka中的broker),canal client相當于mq中的消費者.instance接收到數據通過parse解析之后經過sink進行數據加工,最后存儲到sore中,由canal client來進行消費.

          由于業務數據量較大,單表超億,根據實際業務對數據庫進行分庫分表,es中存儲主鍵和賬號對應關系,訪問數據庫時先送es中獲取主鍵再查db,這樣可以直接打到對應分片上秒回

         起初打算采用官方提供的工具實現,后續發現官方的不太符合我們的需求(或許是自己沒搞明白官方的工具),并切我們是分庫分表的,按照官方的配置太過繁瑣.一個表到底層就分了幾百張表,所以決定就基于canal client自己實現了同步es,全量和增量.不過踩了不少得吭.

        采用es的bulk api批量更新 .設置自定義模板,后續翻閱官方的源碼,其實大致也是這么實現的,只不過官方的具有通用性而已.

        啟動方法:

基于canal client實現canal同步es的示例分析

 連接canal server代碼:

基于canal client實現canal同步es的示例分析

基于canal client實現canal同步es的示例分析

解析binlog的代碼也很簡單,不過自己實現的不具備通用性,勿噴:

基于canal client實現canal同步es的示例分析

基于canal client實現canal同步es的示例分析

將數據進行組裝批量提交:

基于canal client實現canal同步es的示例分析

基于canal client實現canal同步es的示例分析

就這個不困擾了.es和msyql總是差那么10-100條不等,后續找到的原因,由于設置批量是1000,而數據庫更新操作tps較低,所以造成兩者之間數據延時.將批量數逐個降低測試最后調整到50批次,es和mysql數據時延降低到毫級了.

全量同步的較為簡單.個人是這樣實現的.首先將mysql中20億數據量導出到文本文件,我們只需要主鍵和賬號兩個字段即可,并且是分庫分表的,導出非常快.1億的數據量30秒以內全部導出.然后通過緩沖流一行一行讀取文件,調用bulk api批量入es,es 5個數據節5分片一副本,單節點40核物理機 內存512G jvm設置31G raid0 sas盤,1億數據量基本5分鐘以內就可導入es中,目前線上運行2月沒發現異常.

上述就是小編為大家分享的基于canal client實現canal同步es的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

望都县| 渑池县| 镇雄县| 镇巴县| 昌黎县| 子洲县| 莱芜市| 宜阳县| 海口市| 嘉义市| 英吉沙县| 宜兴市| 鞍山市| 光泽县| 卓资县| 兴宁市| 东阿县| 海门市| 东明县| 信宜市| 衡阳市| 田阳县| 措勤县| 玛曲县| 武清区| 孟连| 特克斯县| 冕宁县| 桑日县| 镇平县| 阿拉善盟| 龙岩市| 紫云| 永善县| 南平市| 东山县| 酉阳| 随州市| 浪卡子县| 定陶县| 虎林市|