论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
大数据
›
数据仓库与分析
›
为什么说Kafka还不是完美的实时数据通道 ...
为什么说Kafka还不是完美的实时数据通道
商道如狼道
金牌会员
|
2024-10-21 15:28:57
|
显示全部楼层
|
阅读模式
楼主
主题
910
|
帖子
910
|
积分
2730
本文重要谈谈Kafka用于实时数据通道场景的缺陷,以及如何在架构上进行增补。
Kafka归属于消息队列类产品,其他竞品还有RabbitMQ、RocketMQ等,总的来说它们都是基于生产者、中介和消耗者三种角色,提供高并发、大数据量场景下的消息传递。Kafka诞生自Hadoop生态,与生态中的其他组件具有更好的亲和性,在实时数据场景中每每是首选。随着数据实时应用的需求高涨,Kafka作为构建实时数据通道的焦点组件,得到了广泛的应用。
Kafka自己不介入消息内容,须要生产者和消耗者事先约定某种通讯契约(包括序列化框架和数据结构两部分)来编码和解码消息内容。这个通讯契约由到场双方系统约定而成,双方是对等关系,一旦发生变化须要双方重新协商。
对于消息队列场景,上述机制完全没问题。但在实时数据场景下,数据每每由生产侧CDC工具以抓取数据库的方式产生,那么通讯契约中的数据结构部分直接采取了生产系统的表结构,即由生产侧系统单方面定义的,对下游具有强制性。而且,当生产系统的表结构变化时,下游也不得不适配全表结构的变化,即使只须要部分字段的数据。可见,实时数据场景下,下游系统完满是从属关系,产生了大量冗余工作量。另外,表结构变更传递到下游系统,并没有自动化机制,容易产生时间耽误和沟通误差等问题。
Kafka作为一个实时数据的汇集点,并不能对上述两个问题进行有效控制,也就是本文所说的缺陷。
关于办理方案,首先是在Kafka上增加元数据管理模块,在实践中我们选择了Schema Registry,由confulent开源的元数据管理工具。团体架构如下图所示
每个topic都有schema,且随着topic中数据结构的变化,schema会产生多个版本,每个版本的schema具有全局唯一id。一条完整的消息就由schema id和data两部分构成,在消耗端读取消息时可以根据id找回schema,进而解析消息。
可见,引入SR后系统具备了在Kafka通道中获取上游系统表结构继而解析消息的能力。当表结构发生变化时,CDC工具会自动推送schema给SR。市场上主流的CDC工具,如Oracel Golden Gate(OGG),已经提供了对Schema Registry的适配。
如许,我们办理了schema在上下游之间自动更新同步的问题。
在此底子上,我们又增加了对表结构的裁剪能力,即可以基于不同下游系统的需求对同一个topic进行差异化的读取字段内容。而裁剪后,也就形成了一个上下游对等关系的契约,降低了下游系统的无效耦合,从而消除了冗余工作量。更重要的是,裁剪的过程是零编码的,仅在交互界面上点选操纵即可。这个裁剪工具并没有找到开源实现版本,所以我们自己进行了研发,取名为schema manager。
末了,我们基于schema registry和schema manager,开发了自适应的消息解析程序,封装为SDK。如许下游系统只须要按照SDK接口(兼容Kafka原生接口)订阅消息,即可完全屏蔽掉无关的上游变更内容,对上述一套实现机制完全无感。
末了,简单总结下答案,实时数据通道的四个能力:
Kafka的消息队列能力
与生产侧打通的schema自动更新和管理能力
面向消耗侧需求的schema裁剪能力
自适应schema变更的解析能力
通过如许的实时数据通道,上下游系统规复到了对等通讯关系,基本清除了下游的冗余工作量。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
商道如狼道
金牌会员
这个人很懒什么都没写!
楼主热帖
【python】实现文章同步csdn社区自动化 ...
SQLI-LABS(Less-5)
容器化 | 在 Rancher 中部署 MySQL 集 ...
如何利用ipad随时随地开发代码 ...
MVCC - Read View的可见性判断理解 ...
django 报错 'set' object is ...
Scrum 框架的四个会议还适用于哪些敏捷 ...
到底什么是小程序插件?
2022 Delphi 11开发苹果IOS证书等详细 ...
Django生产环境静态资源404问题 ...
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表