比较前 3 名Schema管理工具
liuian 2025-05-16 14:47 21 浏览
关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。
在本文中,读者将了解三种顶级schema管理工具,如 AWS Glue、Confluent Schema Registry 和 Memphis.dev Schemaverse。
在深入研究不同的支持技术之前,让我们创建一个关于模式和消息代理或异步服务器-服务器通信的基线。
Schema = Struct
“消息”的形状和格式是在不同的应用程序/服务/电子实体之间构建和传递的。
模式可以在 SQL 和无 SQL 数据库中找到,在数据库期望接收的数据的不同形状中(例如,,,first_name:string等等first.name)。
不熟悉或不兼容的架构将导致删除,并且数据库不会保存记录。当两个逻辑实体正在通信时,例如两个微服务,也可以找到模式。
想象一下:A 向 B 写入一条消息,B 需要特定的格式(如 Protobuf),其逻辑或代码也需要特定的键和值类型,例如列名中的拼写错误。意外的架构或不同的格式将导致消费者。
模式是手动的或具有用于稳定通信的自动合同,规定两个实体应如何通信。 当数据从一项服务流向另一项服务时,以下比较技术将帮助您在服务之间维护和实施模式。
什么是 AWS Glue?
AWS Glue 是一种无服务器数据集成服务,可以更轻松地发现、准备、移动和集成来自多个来源的数据,用于分析、机器学习 (ML) 和应用程序开发。
资料来源:AWS 亚马逊能力
- 数据整合引擎
- 事件驱动的 ETL
- 无代码 ETL 作业
- 数据准备
AWS Glue 的主要组件是存储元数据的数据目录和可以自动生成 Scala 或 Python 代码的 ETL 引擎。常见的数据源是 Amazon S3、RDS 和 Aurora。
什么是 Confluent Schema Registry?
Confluent Schema Registry 为您的元数据提供服务层。
它提供了一个 RESTful 接口,用于存储和检索您的 Avro(R)、JSON 模式和 Protobuf 模式。
它根据指定的主题名称策略存储所有模式的版本化历史,提供多种兼容性设置,并允许根据配置的兼容性设置和对这些模式类型的扩展支持来演化模式。
它提供插入 Apache Kafka(R) 客户端的序列化程序,这些客户端处理以任何受支持格式发送的 Kafka 消息的模式存储和检索。
Schema Registry 存在于您的 Kafka 代理之外并与之分开。您的生产者和消费者仍然与 Kafka 对话以发布和阅读有关主题的数据(消息)。
同时,他们还可以与 Schema Registry 通信以发送和检索描述消息数据模型的模式。
什么是 Memphis.dev Schemaverse?
Memphis Schemaverse 在 Memphis 代理之上提供了一个强大的模式存储和模式管理层,无需独立的计算单元或专用资源。
通过独特的现代 UI 和编程方法,技术和非技术用户可以创建和定义不同的模式,将模式附加到多个站点,并选择是否应强制执行该模式。
Memphis 的低代码方法删除了序列化部分,因为它嵌入在生产者库中。
Schemaverse 支持版本控制、GitOps 方法和模式演变。
Schemaverse 的主要目的是充当自动看门人,确保接收到孟菲斯站的消息的格式和结构,并减少消费者崩溃,如果某些生产者使用不熟悉的模式生成事件,这种情况经常发生。
当前版本常见用例
- 微服务之间的模式实施。
- 数据合同
- 转换事件格式
- 围绕不同的消费者和生产者创建组织标准。
比较
胶水架构注册表图式宇宙数据格式JSON 架构、Avro、ProtobufAvro、JSON 模式、ProtobufJSON 架构、Protobuf、GraphQL验证和执行是的是的是的连载需要实施需要实施透明的反序列化需要实施需要实施透明的管理界面图形用户界面、命令行界面、软件开发工具包休息、开发工具包、图形用户界面软件开发工具包、图形用户界面、命令行界面支持的语言斯卡拉Java、.NET、PythonGo、Node.js、Python、REST、TypeScript、NestJS、Java、.NET、Kotlin兼容模式向后或向前向后或向前向后或向前架构创建手动/自动手动/自动手动的价钱每月每 100,000 个存储超过 1M 的对象 1.00 USD + 每月每百万个超过 1M 的请求 1.00 USDConfluent Community 许可证/ Confluent Enterprise 许可证开源/免费
验证和执行
当数据流应用程序与模式管理集成时,用于数据生产的模式将根据中央注册表中的模式进行验证,从而允许您集中控制数据质量。
AWS Glue 使用 Glue 架构注册表为使用 Apache Kafka、AWS MSK、Amazon Kinesis Data Streams、Apache Flink、Amazon Kinesis Data Analytics for Apache Flink 和 AWS Lambda 的应用程序提供实施和验证。
模式注册表 在客户端和服务器端验证和执行消息模式。验证将在客户端通过从模式注册表中检索模式对即将生成的数据执行序列化来进行。Confluent 提供了 read-to-use 序列化函数,可以使用。
架构更新和演进将需要启动客户端并获取更新以在注册表级别更改架构。首先需要切换到某种模式(前进/后退),执行更改,然后恢复默认。
Schemaverse 也在客户端验证和强制执行模式,无需手动获取模式并支持运行时演化,这意味着客户端无需重新启动即可应用新的模式更改,包括不同的数据格式。
Schemaverse 还使序列化/反序列化对客户端透明,并根据所需的数据格式将其嵌入到 SDK 中。
序列化/反序列化
通过网络发送数据时,需要先编码成字节。AWS Glue 和 Schema Registry 的工作方式类似。每个创建的模式都有一个 ID。
当生成数据的应用程序已注册其架构时,架构注册表序列化程序会验证应用程序生成的记录是否使用与已注册架构匹配的字段和数据类型进行结构化。
反序列化将通过类似的过程进行,方法是根据消息中的给定 ID 获取所需的模式。
在 AWS Glue 和 Schema Registry 中,客户有责任实施和处理序列化。在 Schemaverse 中,它是完全透明的,客户端所需要的只是产生符合要求结构的消息。
结论
到目前为止,您应该对三大模式管理工具 AWS Glue、Confluent Schema Registry 和 Memphis.dev Schemaverse 有了更好的了解。我希望您能带走一些有影响力的信息,以帮助您决定哪种模式管理工具最适合您和您的需求。
相关推荐
- Python 中 必须掌握的 20 个核心函数——items()函数
-
items()是Python字典对象的方法,用于返回字典中所有键值对的视图对象。它提供了对字典完整内容的高效访问和操作。一、items()的基本用法1.1方法签名dict.items()返回:字典键...
- Python字典:键值对的艺术_python字典的用法
-
字典(dict)是Python的核心数据结构之一,与列表同属可变序列,但采用完全不同的存储方式:定义方式:使用花括号{}(列表使用方括号[])存储结构:以键值对(key-valuepair)...
- python字典中如何添加键值对_python怎么往字典里添加键
-
添加键值对首先定义一个空字典1>>>dic={}直接对字典中不存在的key进行赋值来添加123>>>dic['name']='zhangsan'>>...
- Spring Boot @ConfigurationProperties 详解与 Nacos 配置中心集成
-
本文将深入探讨SpringBoot中@ConfigurationProperties的详细用法,包括其语法细节、类型转换、复合类型处理、数据校验,以及与Nacos配置中心的集成方式。通过...
- Dubbo概述_dubbo工作原理和机制
-
什么是RPCRPC是RemoteProcedureCall的缩写翻译为:远程过程调用目标是为了实现两台(多台)计算机\服务器,互相调用方法\通信的解决方案RPC的概念主要定义了两部分内容序列化协...
- 再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配
-
在微服务项目中,如果我们想实现服务间调用,一般会选择Feign。之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支持普通的HTTP调用,还能...
- SpringGateway 网关_spring 网关的作用
-
奈非框架简介早期(2020年前)奈非提供的微服务组件和框架受到了很多开发者的欢迎这些框架和SpringCloudAlibaba的对应关系我们要知道Nacos对应Eureka都是注册中心Dubbo...
- Sentinel 限流详解-Sentinel与OpenFeign服务熔断那些事
-
SentinelResource我们使用到过这个注解,我们需要了解的是其中两个属性:value:资源名称,必填且唯一。@SentinelResource(value="test/get...
- 超详细MPLS学习指南 手把手带你实现IP与二层网络的无缝融合
-
大家晚上好,我是小老虎,今天的文章有点长,但是都是干货,耐心看下去,不会让你失望的哦!随着ASIC技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发速度方面不再具备明显的优势...
- Cisco 尝试配置MPLS-V.P.N从开始到放弃
-
本人第一次接触这个协议,所以打算分两篇进行学习和记录,本文枯燥预警,配置命令在下一篇全为定义,其也是算我毕业设计的一个小挑战。新概念重点备注为什么选择该协议IPSecVPN都属于传统VPN传统VP...
- MFC -- 网络通信编程_mfc编程教程
-
要买东西的时候,店家常常说,你要是真心买的,还能给你便宜,你看真心就是不怎么值钱。。。----网易云热评一、创建服务端1、新建一个控制台应用程序,添加源文件server2、添加代码框架#includ...
- 35W快充?2TB存储?iPhone14爆料汇总,不要再漫天吹15了
-
iPhone14都还没发布,关于iPhone15的消息却已经漫天飞,故加紧整理了关于iPhone14目前已爆出的消息。本文将从机型、刘海、屏幕、存储、芯片、拍照、信号、机身材质、充电口、快充、配色、价...
- SpringCloud Alibaba(四) - Nacos 配置中心
-
1、环境搭建1.1依赖<!--nacos注册中心注解@EnableDiscoveryClient--><dependency><groupI...
- Nacos注册中心最全详解(图文全面总结)
-
Nacos注册中心是微服务的核心组件,也是大厂经常考察的内容,下面我就重点来详解Nacos注册中心@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。微服务注册中...
- 网络技术领域端口号备忘录,受益匪浅 !
-
你好,这里是网络技术联盟站,我是瑞哥。网络端口是计算机网络中用于区分不同应用程序和服务的标识符。每个端口号都是一个16位的数字,范围从0到65535。网络端口的主要功能是帮助网络设备(如计算机和服务器...
- 一周热门
-
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
飞牛OS入门安装遇到问题,如何解决?
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
- 最近发表
-
- Python 中 必须掌握的 20 个核心函数——items()函数
- Python字典:键值对的艺术_python字典的用法
- python字典中如何添加键值对_python怎么往字典里添加键
- Spring Boot @ConfigurationProperties 详解与 Nacos 配置中心集成
- Dubbo概述_dubbo工作原理和机制
- 再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配
- SpringGateway 网关_spring 网关的作用
- Sentinel 限流详解-Sentinel与OpenFeign服务熔断那些事
- 超详细MPLS学习指南 手把手带你实现IP与二层网络的无缝融合
- Cisco 尝试配置MPLS-V.P.N从开始到放弃
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)