FLinkCDC引起的生產事故(二)

背景:

最近在做實時數據的抽取工作,利用FLinkCDC實時抽取目標庫Oracle的數據到Doris中,但是在抽取的過程中,會導致目標庫的生產庫數據庫非常卡頓,為了避免對生產環境的數據庫造成影響,對生產環境的數據庫利用OGG技術做了備庫,從備庫中利用FlinkCDC抽取數據到Doris,但是在抽取的過程中出現了同樣的錯誤,導致備庫數據庫卡頓,數據異常,數據庫宕機,至于這些原因,懷疑我們當時的方案出了嚴重的問題

第一次發方案:

?直接利用FLINKCDC抽取Oralce的binglog日志,這種方案就是在Dinky中啟動的每一個任務都會去Oracle的源端數據庫中讀取binglog日志,從而有大量的進程和線程出現,導致cpu和內存無限上升(剛開始cpu是8核,后面升級到了32核,問題還是出現)

架構圖如下:

改進后的方案:

Oracle CDC數據表主要用于獲取Oracle 數據,并可以實時同步數據表中的修改,經常用在復雜的計算場景。例如,作為一張維表和其他數據表做Join操作。在使用中,同一張MySQL表可能被多個作業依賴,當多個任務使用同一張MySQL表做處理時,MySQL數據庫會啟動多個連接,對MySQL服務器和網絡造成很大的壓力。

為了緩解對上游Oracle 數據庫的壓力,Flink實時計算已提供Oracle 整庫同步到Kafka的能力,通過引入Kafka作為中間層,利用OGG將數據推送到Kafka,然后FLink從Kafka獲取數據,這樣減少了源端數據庫的壓力

架構圖如下:

基本操作如下:

CREATE TEMPORARY TABLE tempOrder (`key_order_id` BIGINT NOT NULL,`value_product` STRING,PRIMARY KEY (key_order_id) NOT ENFORCED
) WITH ('connector' = 'upsert-kafka','topic' = 'order','properties.bootstrap.servers' = 'xxxx','key.format' = 'json','key.fields-prefix' = 'key_','value.format' = 'json','value.fields-prefix' = 'value_','value.fields-include' = 'EXCEPT_KEY','value.json.infer-schema.flatten-nested-columns.enable' = 'false','value.json.infer-schema.primitive-as-string' = 'false'
);

?

利用這種方案從而減少了源端數據庫的壓力

常見問題:1. 源端庫的鏈接數沾滿

? ? ? ? ? ? ? ? ? 2.FlinkCDC 引起的Flink服務器cpu卡頓問題

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43323.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43323.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43323.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

谷歌優化的坑與甜:方法策略決定成敗,并非難易程度

對于谷歌優化,本人頗為惱火。眾所周知,我們開設網站旨在吸引眾多訪客,然谷歌這位傲慢的“高嶺之花”,卻令我們煞費苦心。有位友人為提升其網站排名,不惜耗盡心血,然而成效甚微,猶如坐過山車般起…

P3110 [USACO14DEC] Piggy Back S

題意 有一張 n n n 點 m m m 邊的無向圖,Alice 要從 1 1 1 走到 n n n,Bob 要從 2 2 2 走到 n n n。Alice 走一條邊需要花費 B B B,Bob 走一條邊需要花費 E E E,當他們一起走時,走一條邊需要花費 P P P。求他…

OpenJudge 奇數求和

目錄 描述思路樣例輸入樣例輸出CodeCC 總時間限制: 1000ms 內存限制: 65536kB 描述 計算非負整數 m 到 n(包括m 和 n )之間的所有奇數的和,其中,m 不大于 n,且n 不大于300。例如 m3, n12, 其和則為:357911…

qcom 平臺efuse機器抓取dump log的方法

引言: qcom 平臺機器,一旦efuse后機器將無法抓取dump log qcom 原文: efuse機器抓取dump log的方法如下: 一、修改配置文件: 把kamorta_debugpolicy.xml 在配置了debugpolicy(加入串號和打開開關&#x…

怎么檢查SSL證書是否有效?

SSL證書的有效性對于保護網站數據安全和用戶隱私至關重要。然而,有時可能會出現證書過期、無效或被吊銷的情況。為了確保網站的安全性,對SSL證書的有效性進行檢查至關重要。本文將介紹幾種常用的方法來檢查SSL證書的有效性,幫助大家有效評估和…

Android Studio Download Gradle 時慢問題解決

1.騰訊gradle 下載:后面拼接版本(gradle-8.0-bin.zip) https://mirrors.cloud.tencent.com/gradle/gradle-8.0-bin.zip 2.Android Studio 配置:setting-->gradle-->Use Gradle from 選擇本地文件夾(解壓后的bi…

前端開發常用的框架有以下幾種?

React:由Facebook開發,用于構建用戶界面的JavaScript庫。它可以用于構建單頁面應用和移動應用。 Vue:一套用于構建用戶界面的漸進式框架,也是一個基于JavaScript的前端開發框架。Vue易于學習和使用,適用于構建小型到大…

基于Make的c工程No compilation commands found報錯

由于安裝gcc時只安裝了build-essential,沒有將其添加到環境變量中,因此打開Make工程時,CLion會產生如下錯誤: 要解決這個問題,一個方法是將GCC添加到環境變量中,但是這個方法需要修改至少兩個配置文件&…

數據結構——約瑟夫環C語言鏈表實現

約瑟夫環問題由古羅馬史學家約瑟夫(Josephus)提出,他參加并記錄了公元66—70年猶太人反抗羅馬的起義。在城市淪陷之后,他和40名死硬的將士在附近的一個洞穴中避難。起義者表示“寧為玉碎不為瓦全”,約瑟夫則想“留得青…

dledger原理源碼分析(四)-日志

簡介 dledger是openmessaging的一個組件, raft算法實現,用于分布式日志,本系列分析dledger如何實現raft概念,以及dledger在rocketmq的應用 本系列使用dledger v0.40 本文分析dledger的日志,包括寫入,復制…

liunx下通過設備文件設置串口波特率,并收發

在Linux下,你可以通過串口設備文件設置串口波特率,并進行數據的收發。 確認串口設備文件 首先,確認你要使用的串口設備文件,一般情況下串口設備文件的命名規則為/dev/ttyS0、/dev/ttyS1等,具體的設備文件名可能會有所…

Linux 網絡文件系統 NFS:配置與管理指南

Linux 網絡文件系統 NFS:配置與管理指南 網絡文件系統(NFS)是一種分布式文件系統協議,允許用戶在網絡上跨不同計算機和操作系統共享文件和存儲資源。NFS 提供了強大的數據共享功能,廣泛應用于企業級存儲解決方案中。本…

網站SEO百度搜索排名—通過關鍵字提升網站流量

添加網站關鍵字 <meta name"keywords" content"系統通過搜索到的關鍵字XXXXXXXXX"> <meta name"description" content"網站的介紹內容XXXXXXXXXXXXXXXXX"> <title>平臺名稱XXXXXXX</title> 在 百度站點管理 …

STM32串口通訊(RS232、RS485、TTL)詳解

前言 STM32串口&#xff08;Serial Communication Interface&#xff09;是STM32微控制器中用于串行通信的接口&#xff0c;通常指的是USART&#xff08;通用同步異步收發器&#xff09;或UART&#xff08;通用異步收發傳輸器&#xff09;。這些接口允許STM32微控制器與其他設…

跟我從零開始學STL(STL代碼基礎01)---string容器

引言 小伙伴們大家好&#xff0c;又到了新的篇章了&#xff0c;感謝大家的支持&#xff01;今天我們要學一個新的篇章&#xff0c;STL。在編程領域&#xff0c;STL&#xff08;Standard Template Library&#xff0c;標準模板庫&#xff09;是C語言中非常重要的一部分。它為我們…

zabbix 學習筆記

文章目錄 Zabbix 安裝Ubuntu 18.04.1 server 安裝Zabbix 4.0Centos7 安裝Zabbix3.4Centos7 安裝zabbix4.2Centos7.1908安裝zabbix 基于ngixDebian11安裝zabbix6.0LTS 基于PostgreSQL和NGINXAlmaLinux9.2使用國內清華源在線安裝zabbix6.0.18LTS 基于MySQL和NGINXUbunut22.04使用…

crewAI中通過Ollama調用本地模型的兩種方式

0 背景 crewAI中默認使用的gpt4的模型&#xff0c; 在環境中配置OPENAI_API_KEY即可使用。 但openai的api畢竟是要花錢的&#xff0c; 況且現在對大陸地區做了封禁&#xff0c; 使用起來不是那么方便。 而Ollama可以方便的運行本地的大模型&#xff0c; 既不用花錢&#xff0c…

圖文講解IDEA如何導入JDBC驅動包

前言 學習JDBC編程,勢必要學會如何導入驅動包,這里筆者用圖文的方式來介紹 視頻版本在這里 50秒教你怎么導入驅動包然后進行JDBC編程的學習_嗶哩嗶哩_bilibili 忘記錄音頻了,大伙湊合著看 下載驅動包 https://mvnrepository.com/artifact/mysql/mysql-connector-java 去中…

GB28181設備如何添加

簡介 此篇描述視頻網關&#xff08;中間件&#xff09;接入大華、海康、ONVIF設備&#xff08;NVR、攝像頭&#xff09;、GB28181設備步驟和流程。 閱讀本文檔之前建議先閱覽視頻網關&#xff08;中間件&#xff09;用戶使用手冊。 接入方式和說明 視頻網關&#xff08;中間…

Flutter——最詳細(GestureDetector)使用教程

背景 組件手勢檢測&#xff0c;單擊、雙擊、長按、松開、移動、橫向拖動、豎向拖動等事件 屬性作用onTap單擊onDoubleTap雙擊onLongPress長按onPanUpdate拖動實時更新onHorizontalDragDown橫向點擊onVerticalDragDown豎向點擊 GestureDetector(onTap: () > setState(() >…