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.mzph.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(() >…