迪士尼彩乐园博彩官网 携程基于Kafka的数据校验代理在FinOps鸿沟的应用

迪士尼彩乐园-中国-有限责任公司
迪士尼彩乐园博彩官网

你的位置:迪士尼彩乐园-中国-有限责任公司 > 迪士尼彩乐园博彩官网 > 迪士尼彩乐园博彩官网 携程基于Kafka的数据校验代理在FinOps鸿沟的应用

迪士尼彩乐园博彩官网 携程基于Kafka的数据校验代理在FinOps鸿沟的应用

发布日期:2025-01-08 06:36    点击次数:154

作家简介迪士尼彩乐园博彩官网

懿涵,携程HybridCloud团队云原生研发工程师,平和云原生、IaC鸿沟。

为了有用管束云资本,基于携程羼杂多云和自建PaaS为主的近况,羼杂云团队研发了FinOps计费系统。本文将先容计费系统基于Kafka构建的接入体系在数据质地与治理方面的挑战,并共享基于自研Kafka Gatekeeper构建度量及治理自助化自动化的执行。

一、近况与问题

1.1 近况

1.2 问题刻画

1.3 惩办决议

二、设想与中枢完了

2.1 Kafka的干系配景学问

2.2 Kafka Gatekeeper的设想和完了

三、回来

一、近况与问题

1.1 近况

图1-1

如图1-1所示,携程当今使用了羼杂多云的步地,同期也以自建PaaS业绩为主,因此计费系统除了需要从云商获取账单等信息,还需要接入几十种自建PaaS业绩的用量信息。其主要结构如下:

1)TripCostAllocationProtocol: 为了计费接入的彭胀性,计费系统设想了计费公约,兼容羼杂多云步地,支撑自建及原生PaaS/SaaS业绩。

2)计费数据接入:云原生业绩协调由计费系统处理,自建业绩由各团队按TripCostAllocationProtocol依期打点的状貌,将用量信息送达到Kafka中。

3)计费处理:计费系统凭证接入的账单、用量以及业绩间的关系,进行递归结算,并将箝制落到里面数仓。

1.2 问题刻画

计费系统上线后,见效为管束层、运营以及研发等脚色提供了计费及资安分析的才调。在数据质地上,系统在数仓箝制表上创建了对应的检测划定,针对明显违抗业务逻辑的数据不错触发告警。但是,跟着系统的践诺,数据质地的问题仍然居高不下,具体进展如下:

问题发现:

a.遮掩率低:针对数据极端进程在一定鸿沟内,但仍然稳妥业务逻辑的问题,无法被检测到。

b.实时性差:由于检测基于箝制表,告警只可针对计费箝制,告警箝制有滞后性。

问题定位:

a.箝制低:检测是运行在计费系统里面的箝制表上,需要多个数据接入方团队及计费系统斥地东说念主员共同排查,详情问题发生的源泉及原因。

问题治理:

a.包袱不解:由于质地检测基于箝制表,但酿成问题的源泉种种。无法通过对箝制的检测奏凯将问题包摄到对应团队,问题无法赢得实时的平和与处理。

数据质地是计费系统的人命线,原有系统在质地上的问题导致计费系统斥地团队大齐的时刻被浮滥在对证地问题的反应、排查与斥地,无法献媚元气心灵进入在居品迭代上,也无法应酬更多业绩的接入。

1.3 惩办决议

针对以上问题,咱们决定再行构建数据质地治理的才调。场地如下:

问题发现

a.全问题遮掩:从数据源泉起程,统共不稳妥校验划定的脱手数据齐不错被发现。

b.实时性提高:数据十分在进入计费链路之前就不错被发现,而非通过计费箝制告警。

问题定位:

a.提高箝制:无需多方团队合营排查,自动拿获问题源泉及问题发生的原因。

问题治理:

a.包袱明确:问题产生确当下就见告干系包袱东说念主,明确问题治理的对应团队。

通过分析数据质地的案例,发现绝大部分数据质地的问题来自于几十个自建业绩数据接入方。凭证以上场地的梳理的问题的分析,咱们决定引入Kafka Gatekeeper组件,重心惩办自建业绩接入的质地问题,如图1-2所示。该组件提供以下才调:

1)校验前置:打点数据在进入计费逻辑前,先进行划定校验,保证问题发现实时性。

2)划定可树立:校验划定可随时树立、随时更新,保证划定检测的全遮掩。

3)自助排查:提供自助查询看板,包括数据极端条数,问题发生原因等信息,研发可自助查询对应团队的干系信息,提高问题定位箝制。

4)自动告警:检测发现分歧规数据(如字段缺失、数据类型极端等)时,向数据来源的团队发送告警,明确问题治理包袱。

图1-2

二、设想与中枢完了

2.1 Kafka的干系配景学问

为了完了Kafka代理业绩的数据校验功能,需要惩办以下两个问题:

1)如何凭证Kafka公约对音书进行解码。

2)如何处理Kafka客户端,业绩端和代理之间的相连关系。

2.1.1 通信公约迪士尼彩乐园博彩官网

图2-1

如图2-1所示,Kafka恳求只可由Client主动发到Broker,Broker针对每个恳求回应反应给Client。

Kafka使用基于TCP的自界说二进制公约。它界说了客户端和业绩器之间的音书步履、音书传递状貌和处理逻辑。统共音书齐是通过长度来分隔,况且由基本类型构成。恳求由恳求类型(ApiKey),版块号(ApiVersion),干系性象征(CorrelationId),客户端象征(ClientId)和恳求音书(RequestMessage)构成。反应由干系性象征(CorrelationId)和反应音书构成(ResponseMessage)构成。

ApiKey用于说明Request的类型,以通过不同类型的数据步履分解恳求。Request和Response通过CorrleationId来一一双应。

由于发送分娩音书,仅包含两种API--元数据(Metadata)和分娩(Produce),本文仅平和这两种API的请乞降反应,公约步履见图2-2。

图2-2

Metadata是用于获取元数据的API。元数据恳求在佩戴topic_name时会复返topic干系的数据,如若为空则复返统共主题。元数据反应复返的数据包括一串broker的数据信息,以及topic名、分区信息等。图中概略部天职容,仅展示和本文干系的部分。

Produce是用于将音书集发送到业绩器的API。分娩恳求将佩戴场地topic,以及分区信息,其等分区信息中包含所要发送的具体音文牍录聚积。分娩反应复返的数据包括具体的恳求箝制。图中概略部天职容,仅展示和本文干系的部分。

通过了解以上两种API的步履,不错基于公约步履进行解码。

2.1.2 交互历程

处理相连关系,还需要了解Metadata、Produce公约的交互历程。

元数据恳求不错发往自便broker。Kafka集群会提供Bootstrap地址,由此地址负载平衡到某一业绩器并复返。客户端提供一组topic,业绩端复返元数据反应,包含统共的broker信息和干系的topic信息。broker信息中包括节点的IP地址,即客户端确凿发送分娩信息的业绩器地址。

分娩恳求将会发送到元数据恳求中复返的某一业绩器上,业绩器端将会复返恳求箝制。

图2-3

如图2-3所示,将集群简化为一个Broker,Produce的具体历程:

1)Client向Bootstrap地址发送元数据恳求,查询集群刻下Broker列表。

2)Bootstrap真实反应的Server其实是(某一个)Broker,Broker复返了统共的信息包含在元数据反应中。

3)Client向真实的Broker地址发送分娩恳求。

4)Broker处理恳求,并回应反应。

通过了解Kafka分娩的基本历程,不错完了代理,接受并处理其中的相连关系。

2.2 Kafka Gatekeeper的设想和完了

Gatekeeper当作Kafka客户端和业绩端之间的代理,接受客户端的恳求关于指定本色作念数据校验,并转发给业绩器,同期将业绩器的反应复返给客户端。

关于客户端来说,仅需要将原来树立的Boostrap地址改成Gatekeeper的地址。

关于Gatekeeper来说,需要作念到:

1)设想解码器妥协码决议:解码Kafka音书,从而进一步进行处理。

2)设想校验器和校验划定:进行数据校验,提高数据质地。

3)肃肃Boostrap地址和Gatekeeper地址之间的映射关系:处理客户、Gatekeeper、业绩间的相连。

Gatekeeper设想架构如图2-4所示。

图2-4

解码器用于在处理恳求时,凭证Kafka公约和自界说的解码决议解码。当分解元数据恳求时,凭证自界说的映射关系修改复返的元数据反应。

校验器当分解的是分娩恳求时,会凭证自界说的校验划定进行校验。

映射关系被肃肃在Gatekeeper中处理相连关系。

Gatekeeper肃肃的映射关系中,由于Kafka的默许端标语是9092,"Gatekeeper的IP地址+9092端口"的相连将与"Bootstrap的IP+9092端口"作念映射。"Gatekeeper的IP+port1"的相连将与"Broker1的IP+9092端口"作念映射,"Gatekeeper的IP+port2"的相连将与"Broker2的IP+9092端口"作念映射,以此类推。Gatekeeper就不错凭证这个映射关系,处理来自客户的恳求,发送给相应业绩端,并一样处理来自业绩端的反应。

一言以蔽之,Kafka Gatekeeper监听了客户端发来的恳求,凭证树立转发给业绩端,一方面分解了客户端的分娩信息作念数据校验,另一方面修改了业绩端的元数据反应信息给用户,以保证用户的分娩信息老是通过Gatekeeper进行转发。

2.2.1 期骗通信公约进行分解

通过前文可知,每个请乞降反应齐有固定步履的header和具体的恳求包。而由于Kafka每一种公约也齐有固定的步履,Kafka公约中可使用的数据类型是固定的,且是按规矩存储的。

因此,只需给每种数据类型完了一个特定的编解码决议,并通过header中佩戴的ApiKey和ApiVersion,详情某一个解码步履,就不错凭证收到的包序列化数据。

总而言之,Gatekeeper的解码器需要完成两个任务:完了不同数据类型的序列化功能,以及凭证版块详情公约步履。

以version-1的分娩音书为例:

从编解码角度来说,每个公约包齐是由4字节的size来源,后头再跟相应字节的恳求包或反应包。解码器领先默契过序列化功能分解了这个4字节的size,揣摸出恳求包的大小。

一样的,解码器揣摸出2个字节的ApiKey和ApiVersion(和本文无关的其他字段暂时略过)。解码器揣摸出身产恳求的的ApiKey为0,ApiVersion为1。这么解码器的说明版块功能就能详情一个公约步履,再凭证这个步履的数据类型去逐一作念分解。

至此,Gatekeeper不错就凭证不同类型,不同版块的的客户端恳求,完成分解。凭证即时的解码本色,迪士尼彩乐园进不去针对需要再进一步处理,不错保证问题发现的实时性。

2.2.2 期骗交互历程进行相连处理

Gatekeeper的使命旨趣是在土产货机器上怒放tcp套接字,并在使用套接字时,代理相连到干系的Kafka业绩,它将土产货端口与真实的业绩地址进行映射。

图2-5

如图2-5所示,用户加入Gatekeeper业绩后,Produce的具体历程:

1)当客户端发起第一条元数据恳求时,发送地址是Gatekeeper地址,恳求将会被Gatekeeper监听到。

2)Gatekeeper发起一条到业绩端的相连,把监听到的相连发送给Boostrap地址,同期存储一份Boostrap地址和土产货地址的映射。

而从最近一段时间的数据来看魔兽世界WLK怀旧服的时光徽章的价格趋于下降,虽然从目前数据来看并没有下降多少,但是时光徽章的最低价格居然已经达到了9429,虽然这个价格并没有稳住多久。但是可以证明一点便是魔兽世界WLK怀旧服游戏中的玩家们数量正在增加或者是玩家们的需求正在增加从而导致了时光徽章价格下跌G币上升。

再过不久,大唐官府服务器就要进入三年外大圈子了。区内的人气玩家赵波,也已经开始筹备大唐官府自己的服战队。为此,他也特意买了一个带160专用项链的天青号,这条项链满锻最高可达到370点灵力。

3)元数据反应会复返一串Broker的干系信息,Gatekeeper吸收到干系信息后,会分解本色将Metadata数据华夏本的节点IP信息,替换成Gatekeeper的地址。

4)当客户端发送Produce恳求时,通过吸收到反应里的地址和Gatekeeper建立相连的。

总而言之,客户端的Produce历程齐经过Gatekeeper,Gatekeeper不错对统共的Kafka音书进行校验。保证打点数据进入计费链条前先进入校验逻辑,完了校验检测全遮掩。

2.2.3 可树立化校验与自助十分定位

Gatekeeper的场地,是提供一个针对Kafka音书的前置数据校验代理,惩办接入业绩的数据质地问题。从数据源泉脱手,树立校验划定搜检每个topic的数据是否合规,定位十分数据来源,向干系团队告警,并提供自助排检察板。

提供可自界说树立的校验划定,不错随时更新、鼎新,况且提供凭证解码本色明确包袱东说念主的功能。Gatekeeper的校验器会凭证树立的划定,对比分析解码本色作念校验。提供包括判断字段类型、搜检字段缺失、以及稳妥CEL语法的校验划定等功能。

以如下schema为例,TripCostAllocationProtocol商定某topic必须包括,不为空的字符串Name字段,和可选且大于零的整形Timestamp字段。

schema{Name: "", //required TimeStamp: 0, //optional ...}

相应的,Gatekeeper树立如下,针对该topic的TripCostAllocationProtocol商定,树立校验划定。在数据流经代理时,凭证划定全面检测。

"Topics": [ {"Name": "fake.topic","Owner": ["Key":"Name" ],"SchemaRules": [ {"Name": "Name","Type": "string","Optional": false }, {"Name": "Timestamp","Type": int,"Optional": true"Rule": "TimeStamp>0" } ] } ]

以Timestamp字段行恶零值为例,当Gatekeeper考研发现,此条音书不稳妥树立的划定 "Timestamp>0",会凭证树立的Owner,锁定数据来源“Service A”并告警反馈给该团队,明确问题包袱。

此外,Gatekeeper也提供了自动告警功能和自助查询功能。如图2-6所示,处理用户分娩数据的历程以实线清楚,是“用户-代理-业绩”的线性历程,全遮掩所突出据一进行校验。同期Gatekeeper向日记系统和监控系统差异发送了校验失败野心和详备信息日记。

图2-6

校验到分歧规数据时,用户吸收监控告警,通过监控系统不错检察包括数据极端条数,校验通过率等本色。

以上述极端为例,自建PaaS业绩Service A收到fake.topic中分娩了校验分歧法数据的告警。Service A的研发团队通过搜检告警系统搜检告警信息。研发团队不错跳转到对应的日记系统,以搜检极端日记以及校验欠亨过字段的划定,凭证极端日记自助斥地数据。

通过自动告警,提高了问题的定位箝制,明确了问题包袱方。通过提供自助查询看板,可视化展示校验箝制和十分来源,便捷研发团队自助斥地数据,闭环治理历程。

2.2.4 高可用部署

凭证携程的可用性最好执行,完了跨AZ高可用和数据校验就近处理。如图2-7所示,业绩给用户提供协调进口,并在AZ里面署多个实例提供业绩。

图2-7

如图2-8所示,(1) 是原始的Kafka客户端和业绩端交互过程默示图,(2) 是单AZ内,加多了Kafka Gatekeeper作念代理后的交互过程默示。

图2-8

此前,Gatekeeper的地址需要承担的三项包袱--监听,播送和提供进口:

1)监听来自客户的元数据和分娩恳求。

2)复返元数据反适时,提供给用户新的分娩恳求发送的播送地址。

3)提供客户端,用于替换原来Bootstrap的进口地址。

在高可用的部署架构下,Gatekeeper的地址不再承担提供进口的包袱,客户端使用总的进口地址代替原来需要树立的Bootstrap地址。

2.2.5 工夫挑战

在某次重启业绩后,尽管业绩看起来正常运行,况且新增接入的客户端也稳妥预期,但部分已接入的Java客户端老是相连失败,直到客户端自行重启业绩。经过测试发现,这种情况与客户端刷新元数据的步履酌量。

Kafka分娩恳求不成达时,客户端会作念一次元数据的刷新。反应这个刷新元数据恳求的Broker会凭证注册中心复返刻下可达的Broker节点列表。在第一次发送元数据恳求时,客户端详连的是Bootstrap地址(加入Gatekeeper的历程中,相连的是Gatekeeper的IP地址)。然则,在刷新元数据时,客户端的步履有一些区别。

图2-9

如图2-9(1)所示,测试时使用的客户端刷新MetaData的恳求,和脱手发送元数据恳求一样,发往Bootstrap地址。而Java客户端惟一第一次启动时把元数据恳求发给Boostrap地址,如图(2)所示,Java客户端的刷新MetaData的请是奏凯打给具体Broker地址的。

在加入Gatekeeper业绩之后,如图2-10(1)所示,监听恳求的地址和复返的播送地址是Gatekeeper我方的IP地址,播送地址用于代替元数据反应中的的Broker地址信息。也即是说,Java客户端在刷新元数据信息时也会将恳求发往Gatekeeper的IP地址。而由于业绩重启,Gatekeeper实例的IP地址发生了变化。因此,客户端也无法通过刷新元数据得到当今可达的业绩地址,导致相连失败。

图2-10

总之,不同客户端在刷新元数据的状貌上存在互异。Java客户端会缓存Gatekeeper的IP地址,当这个地址变得无效时,相连就会失败。而当客户端的相连老是发送到一个有用的负载平衡地址,因此不会出现这么的问题。

因此,只需让客户端缓存的地址,也即是在元数据反应中复返的地址,老是有用的,就不错幸免以上问题。

原来Gatekeeper的IP地址承担了监听和播送两个功能,其中播送地址与Broker地址一一双应。如图2-10(2)所示,为了惩办固定IP的问题,业绩使用挂载的固定负载平衡地址替换原有播送地址。同期,使用固定鸿沟的端标语代替随即的端标语,且LoadBalancer上与Gatekeeper上映射的端口是饱和一致的,就不错惩办固定端口的问题。

这么,即使Gatekeeper不像Kafka一样使用注册中心来注册统共可达的地址,仍然不错确保客户端恒久梗概找到业绩,而不会丢失相连。

三、回来

Gatekeeper是一个提供对Kafka数据进行校验的器具,并完了校验划定的可树立化。同期Gatekeeper还提供了可视化展示校验箝制和十分来源的监控看板,并提供自助查询极端日记的功能。在源泉完了定位十分,保证了划定检测全遮掩,并提供自动十分发现和自助十分定位业绩,从而完成了治理闭环,普及了数据质地。

当今Gatekeeper的适用鸿沟仅限于FinOps计费系统,但合座架构是针对Kafka音书设想的,因此它不错当作一个可复用的数据校验代理。异日迪士尼彩乐园博彩官网,Gatekeeper但愿能提供一个通用的数据系统校验处理才调,以惩办更平时的数据质地问题。



上一篇:迪士尼彩乐园-中国-有限责任公司 ATFX港股:药明生物出售疫苗步伐,今早股价履历大跌

下一篇:迪士尼彩乐园-中国-有限责任公司 绿军下3分雨闭幕快船5连胜 走路者送鹈鹕5连败

Powered by 迪士尼彩乐园-中国-有限责任公司 @2013-2022 RSS地图 HTML地图