登录
首页 >  Golang >  Go问答

Confluence Schema 注册表与 Go 应用程序

来源:stackoverflow

时间:2024-04-10 12:15:36 478浏览 收藏

本篇文章给大家分享《Confluence Schema 注册表与 Go 应用程序》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我了解 Confluence Schema Registry(CSR)使用 kafka 进行模式存储。我正在尝试将 CSR 与 golang 应用程序集成。我的设置如下: 客户端C连接到服务器S1(go app),S1写入另一台服务器S2。 C -> S1->S2

我想将 CSR 与 S1 集成,这样当 C 向 S1 提交任何写入时,S1 将使用 CSR 根据相应的架构验证提交的数据。如果有效,S1将数据转发给S2。客户C对这里的CSR一无所知。 这样的整合能做到吗?我能找到的所有文档都是关于如何使用 CSR 将数据发布到 kafka 中。

对于这样的集成,我需要一个 CSR 库。使用 CSR 作为具有 REST API 的独立应用程序将不起作用,因为如果我为提交到 S1 的每个写入请求对 CSR 进行 API 调用,将会产生巨大的网络开销。所以我想使用 sdk/library,它已经允许缓存来自 CSR 独立服务器的数据,并且可以在本地进行验证。

如果java中有这样的东西,那也可以。


正确答案


它是一个基于 Java 的独立服务器。它不能“嵌入”Golang 中。您需要使用 REST 与其集成。

请求双方(最常见的是 Kafka 主题)的客户端需要了解注册表,以便通过存储的模式序列化和反序列化数据。否则,您可以将模式定义嵌入到每个应用程序或其他一些远程 HTTP 服务中,而根本不需要 Kafka。

Registry REST 客户端会缓存它看到的所有架构,并且不会调用“每个请求”(至少 KafkaAvroDeserializer 中包含的 Java 实现)。

总的来说,听起来您应该使用 OpenAPI 或 gRPC。不是融合模式注册表,因为您没有提到您想要使用 Kafka,只是为了验证您的服务到服务请求...如果您用 Kafka 生产者/消费者请求替换这些网络调用,那么设置一个基于 kafka 的架构注册表是有意义的。

本篇关于《Confluence Schema 注册表与 Go 应用程序》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>