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

女人能做网站开发吗广告营销包括哪些方面

女人能做网站开发吗,广告营销包括哪些方面,力杨网站建设,ui设计自学教程500集本篇是纯技术文章,是排查线上问题的真实记录。这个异常我在网上没搜到相同案例,所以特此记录下,方便后期回顾。 一、背景 利用FlinkCDC3.0动态监听数据库Schema变更的能力开发了一个生产数据库DDL语句变更审计告警的服务,这两天突然发现服务一直报错,经过4个小时的排查,…

本篇是纯技术文章,是排查线上问题的真实记录。这个异常我在网上没搜到相同案例,所以特此记录下,方便后期回顾。

一、背景

利用FlinkCDC3.0动态监听数据库Schema变更的能力开发了一个生产数据库DDL语句变更审计告警的服务,这两天突然发现服务一直报错,经过4个小时的排查,找到了告警原因和为什么会导致服务异常。

二、报错原因

通过观察下面这张图的堆栈信息,能够发现 FlinkCDC 在底层运用的是debezium中的io.debezium.relational.TableIdParser类,而该类抛出了参数不合法异常,具体表现为 “Unexpected input: d” 这一提示信息。
在这里插入图片描述

先说结论:这个错的原因就是数据库中的表名出现了空格导致的。

三、报错根因

从源码角度去分析。

第一步:

在任务初始化阶段,会通过Debeziumio.debezium.relational.TableId.parse(String str, boolean useCatalogBeforeSchema)静态方法调用io.debezium.relational.TableId.parseParts(str)方法对数据库内所有表名包含的字符进行校验工作。前文所提到的报错情况,实际上就是在这一校验步骤中出现的。如下图:

在这里插入图片描述

第二步:

io.debezium.relational.TableIdParser类主要用于解析库表信息。在数据库环境中,我们都知道表名通常具有一定的结构,可能包含数据库名、模式(schema)名和表的实际名称等多个部分。这个类能够将一个完整的表标识符(如包含数据库、模式和表名的字符串)分解为这些组成部分。

例如,在一个复杂的数据库系统中,表的完整标识符可能是 “mydatabase.myschema.mytable” 的形式。io.debezium.relational.TableIdParser类可以将这个字符串解析为 “mydatabase”(数据库名)、“myschema”(模式名)和 “mytable”(表名)这几个单独的部分,以便在后续的操作中(如数据同步、变更追踪等)能够准确地识别和处理这些不同层次的信息。

io.debezium.relational.TableIdParser.parse(String identifier)方法接收到需要解析的表名字符串(也就是identifier参数所传入的内容)后,其重点调用了io.debezium.relational.TokenStream.start()方法,该方法是整个表名解析流程的起始触发点。

在这里插入图片描述

第三步:

在创建io.debezium.relational.TokenStream对象时,会把接收到的表名转换为字符数组,然后调用tokenizer.tokenize(characterStream, tokenFactory)接口针对字符数组里的每一个字符展开校验工作。这个接口具体有着三种不同的实现方式,重点关注io.debezium.relational.TableIdTokenizer实现即可。
在这里插入图片描述

第四步:

Debezium通过一个枚举定义了INITIAL,IN_IDENTIFIER,BEFORE_SEPARATOR,AFTER_SEPARATOR,IN_QUOTED_IDENTIFIER5种表名解析时的状态。在TableIdTokenizer类的tokenize()方法中,默认将解析状态ParsingState设定为INITIAL,然后在一个while循环中,调用currentState.handleCharacter(input.next(), parsingContext)方法,来针对每一个字符展开校验工作。

当针对某一个字符的校验工作完成之后,会对ParsingState进行更新,进行下一次校验。
在这里插入图片描述

以下为5种枚举值的定义逻辑:

 INITIAL {@OverrideParsingState handleCharacter(char c, ParsingContext context) {if (Character.isWhitespace(c)) {return INITIAL;}else if (c 
http://www.dtcms.com/wzjs/240187.html

相关文章:

  • 做设计必知网站阳东网站seo
  • 医院网站怎么做优化排名百度惠生活商家入驻
  • 沧州建设局网站什么是seo是什么意思
  • 上海宝山区做网站的个人网站该怎么打广告
  • 顺德移动端网站建设青岛网站建设微动力
  • 中韩双语网站制作价格怎样精准搜索关键词
  • 可信网站认证必须做引流软件有哪些
  • 关于加强网站建设与管理的通知百度爱采购推广一个月多少钱
  • 地和网站建设seo引擎优化专员
  • 合肥网站建设网站推广最好用的搜索神器
  • 成都网站只怎么做推广让别人主动加我
  • 长沙百度网站推广广州外包网络推广公司
  • 排名好的青岛网站建设百度大搜是什么
  • 武汉网站建设找问一问公司十大经典事件营销案例分析
  • ps做网站 大小竞价托管就选微竞价
  • 怎么修改网站标题关键词描述旺道seo推广
  • 网站备案找哪个部门抖音seo系统
  • 连云港东海网站建设加盟网络营销推广公司
  • wordpress自动tag排名优化公司哪家靠谱
  • 知名高端网站建设报价同城推广平台有哪些
  • 网站开发维护专员岗位职责电脑优化软件排行榜
  • 网站名词排名怎么做搜索
  • 网站设计软件培训怎么样关键词优化一年的收费标准
  • webview做网站app网址之家大全
  • 学校培训网站建设深圳全网推广公司
  • 余杭区建设局网站百度竞价排名查询网站
  • 无锡优化网站排名今日头条新闻最全新消息
  • 网站代码案例爱站网站长seo综合查询工具
  • 安阳网站开发网站注册流程和费用
  • 网站制作复杂吗推广团队