当前位置: 首页 > news >正文

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卡顿问题

相关文章:

FLinkCDC引起的生产事故(二)

背景: 最近在做实时数据的抽取工作,利用FLinkCDC实时抽取目标库Oracle的数据到Doris中,但是在抽取的过程中,会导致目标库的生产库数据库非常卡顿,为了避免对生产环境的数据库造成影响,对生产环境的数据库利…...

【产品经理】WMS多仓调拨转移说明

对于仓储管理来说,越来越多企业开始应用WMS进行系统化的管理,以提升仓库的作业效率。本文作者从业务流程和基础功能两个方面展开介绍,希望对你有帮助。 一、业务流程 。在线下业务流程拓展,仓库不断增多的过程中,由于…...

每日一练:奇怪的TTL字段(python实现图片操作实战)

打开图片,只有四种数字:127,191,63,255 最大数字为255,想到进制转换 将其均转换为二进制: 发现只有前2位不一样 想着把每个数的前俩位提取出来,组成新的二进制,然后每…...

【Java开发实训】day03——方法的注意事项

目录 一、方法的基本概念 二、void和return关键字 三、单一返回点原则 四、static方法使用说明 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于…...

HarmonyOS NEXT:一次开发,多端部署

寄语 这几年特别火的uni-app实现了“一次开发,多端使用”,它这个端指的是ios、安卓、各种小程序这些,而HarmonyOS NEXT也提出了“一次开发,多端部署”,而它这个端指的是终端设备,也就是我们的手机、平板、电…...

Bilibili Android一二面凉经(2024)

BiliBili Android一二面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《BiliBili Android一二面凉经(2024)》。 面试职位: 高级Android开发工程师&…...

数据库内核研发学习之路(一)

已经上了几天班了,开始做一些总结性的工作。 数据库内核研发首当其中的便是环境配置,今天先介绍一下虚拟机之类的环境搭建,在之前已经写过一篇关于VMware搭建虚拟机的博客了,有兴趣可以去看看,这里我再总结一下使用Vi…...

LSTM:深度学习中的时间序列处理大师

LSTM:深度学习中的时间序列处理大师 引言 在深度学习领域,处理时间序列数据是一项极具挑战性的任务。时间序列数据广泛存在于金融、医疗、气象、自然语言处理等多个领域,这些数据不仅具有时间依赖性,还常常伴随着复杂的长期依赖…...

T113-i系统启动速度优化方案

背景: 硬件:T113-i + emmc 软件:uboot2018 + linux5.4 + QT应用 分支:longan 问题: 全志T113-i的官方系统软件编译出的固件,开机启动时间10多秒,启动时间太长,远远超过行业内linux系统的开机速度,需要进一步优化。 T113-i 优化后启动速度实测数据 启动阶段启动时间(…...

ArcGis将同一图层的多个面要素合并为一个面要素

这里写自定义目录标题 1.加载面要素的shp数据 2.点击菜单栏的地理处理–融合,如下所示: 3.将shp面要素输入,并设置输出,点击确定即可合并。合并后的属性表就只有一个数据了。...

微软Win11 24H2七月更新补丁KB5040435发布!附下载

系统之家于7月10日发出最新报道,微软为Win11用户发布了24H2版本七月的最新更新补丁KB5040435。用户升级系统后,会发现版本号升至 26100.1150。此次更新针对远程身份验证拨入用户服务(RADIUS)协议与 MD5冲突等问题进行修复。接下来跟随小编看看此次更新的…...

iOS 开发中不常见的专业术语

乐此不疲地把简单的问题复杂化,并把这种XX行为叫作专业 APM 在 iOS 开发中,APM 代表 Application Performance Management(应用性能管理)。APM 是一套监控和管理应用程序性能的工具和技术,旨在确保应用程序运行平稳、…...

【中项第三版】系统集成项目管理工程师 | 第 4 章 信息系统架构④ | 4.7

前言 第4章对应的内容选择题和案例分析都会进行考查,这一章节属于技术相关的内容,学习要以教材为准。本章分值预计在4-5分。 目录 4.7 安全架构 4.7.1 安全威胁 4.7.2 定义与范围 4.7.3 整体架构设计 4.7.4 网络安全架构设计 4.7.5 数据库系统安…...

Time to say GoodBye

北湖的繁华 北湖的繁华 北湖的繁华 终究 终究 终究 还是不属于我了 还是不属于我了 还是不属于我了 永远铭记 6 月 26 日 永远铭记6月26日 永远铭记6月26日 在这天下午 , 一个眼镜男夺走了我的资格 在这天下午,一个眼镜男夺走了我的资格 在这天下午,一个眼镜男夺走了我的资格 永…...

C语言之指针的奥秘(二)

一、数组名的理解 int arr[10]{1,2,3,4,5,6,7,8,9,10}; int *p&arr[0]; 这里使用 &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址。如下: 我们发现数组名和数组⾸元素的地址打印出…...

嵌入式linux系统内核启动过程分享

内核的生成步骤可以概括如下: ① 先生成 vmlinux,这是一个elf可执行文件。② 然后 objcopy 成 arch/i386/boot/compressed/vmlinux.bin,去掉了原 elf 文件中一些无用的section等信息。③ gzip 后压缩为 arch/i386/boot/compressed/vmlinux.bin.gz。④ 把压缩文件作为数据段…...

RK3568笔记三十五:LED驱动开发测试

若该文为原创文章,转载请注明原文出处。 字符设备驱动程序的基本框架,主要是如何申请及释放设备号、添加以及注销设备,初始化、添加与删除 cdev 结构体,并通过 cdev_init 函数建立 cdev 和 file_operations 之间的关联&#xff0c…...

pnpm 如何安装指定版本

要安装特定版本的pnpm,可以使用npm命令来全局安装特定版本的pnpm,例如: npm install -g pnpm2.0.0在上面的命令中,使用了2.0.0来指定安装2.0.0版本的pnpm。您可以将2.0.0替换为您需要安装的版本号。 如果您使用的是yarn&#xf…...

LeetCode 240 搜索二维矩阵||

1.题目要求: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。实列: 2.各位大佬们,大家好,此题我用的方法是一行一行的找&…...

万界星空科技MES系统:食品加工安全的实时监控与智能管理

万界星空科技MES系统通过集成多种技术和功能,能够实时监控食品加工过程中各环节的安全风险。以下是对该系统如何实现实时监控的详细分析: 一、集成传感器和数据分析技术 万界星空科技MES系统利用集成的传感器和数据分析技术,实时监控生产过程…...

Windows 11热键冲突别抓狂!用OpenArk一键揪出‘元凶’并释放你的Ctrl+C

Windows 11热键冲突终极排查指南:用OpenArk精准定位并解决问题每次按下CtrlC却毫无反应,或者发现AltTab突然失效时,那种挫败感简直让人抓狂。作为每天要与数十个软件打交道的设计师,我深刻理解热键冲突对工作效率的致命影响。本文…...

用Python和Nuscenes数据集,手把手教你搞懂自动驾驶的6大坐标系转换

用Python和Nuscenes数据集实战自动驾驶6大坐标系转换第一次接触自动驾驶感知系统时,最让人头疼的莫过于各种坐标系之间的转换关系。记得去年参与一个多传感器融合项目时,团队花了整整两周时间调试坐标系对齐问题——雷达检测到的行人位置总是比摄像头看到…...

选型必看!国产RT-Thread才是商用量产最优解

做嵌入式项目选型,很多工程师总会纠结:Zephyr、FreeRTOS、uC/OS、RT-Thread到底怎么选?不少测评一味堆砌极限跑分数据,盲目吹捧海外系统的参数优势,却忽略了国内企业最看重的国产化合规、开发效率、落地量产、售后保障…...

别只当文本框用!解锁Unity InputField的5个隐藏技巧与常见坑点

别只当文本框用!解锁Unity InputField的5个隐藏技巧与常见坑点在Unity开发中,InputField组件看似简单,却是用户交互的核心枢纽。很多开发者仅仅把它当作一个基础输入框使用,却不知道其中隐藏着诸多能显著提升用户体验的实用技巧。…...

告别驱动冲突:在预装NVIDIA驱动的Deepin V23 Beta3上干净安装指定版本显卡驱动

深度清理与精准部署:Deepin V23 Beta3下NVIDIA驱动版本管理的终极指南当你在Deepin V23 Beta3上勾选"集成NVIDIA闭源驱动"时,系统究竟做了哪些改动?这个问题困扰着许多需要特定驱动版本支持CUDA或AI框架的用户。预装驱动带来的便利…...

2026年了,还在为电力负荷预测发愁?基于XGBoost的多变量单步预测全栈实战!

大家好,我是你们的技术伙伴。👋在2026年的今天,随着“双碳”目标的推进,智能电网和能源互联网成为了技术的热点。而这一切的基础,就是精准的电力负荷预测。很多初学者觉得负荷预测很难,觉得需要复杂的深度学…...

FPG平台:行业前景下的战略定位评估

FPG平台:行业前景下的战略定位评估金融服务行业的复杂性决定了平台需要在多个维度上同时具备较高的水准。FPG平台经过多年的发展,已经在合规、技术、服务、教育等方面形成了一套相互支撑的体系。本文从评测视角出发,对其综合实力进行多维度的…...

Qwen模型 LeetCode 2603. 收集树中金币 Python3实现

当然可以!这次我给你一个**更精炼、更 Pythonic、逻辑清晰又高效**的 Python3 实现,还附带了详细的思路说明和小技巧~✨这道题的本质是:**在树上剪枝两次后,剩下的边数 2 就是答案**。为什么?因为&#xf…...

3分钟上手Translumo:免费实时屏幕翻译工具终极指南

3分钟上手Translumo:免费实时屏幕翻译工具终极指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否在游…...

【前端无障碍】屏幕阅读器兼容性:确保视障用户的良好体验

【前端无障碍】屏幕阅读器兼容性:确保视障用户的良好体验 前言 大家好,我是cannonmonster01!今天咱们来聊聊屏幕阅读器兼容性这个话题。想象一下,一个视障用户打开你的网站,通过屏幕阅读器来浏览内容。如果你的网站没有…...