簡體   English   中英

如果我的團隊將提供 jar 庫和 model,我是否需要模式注冊表?

[英]Do I need schema registry if my team will provide jar library with model?

我們正在開始使用KafkaProtocol Buffers作為數據格式的新項目。

看起來Confluent提供的 Serializer/Deserializer 假設使用Schema-Registy ,但由於我的團隊每次 model 更改時都會發布新的 jar 是否有任何理由使用注冊表?

我已經閱讀了多篇文章和資源,但仍然無法真正理解如果您已經擁有 model 為什么要使用模式注冊表。 當您沒有獲得帶有類或任何其他用例的 jar 時,是否屬於這種情況? 在實踐中有一些這樣的例子會很棒。

即使您有 model 個類,您也可能需要模式注冊表。 更重要的是要進行模式演變,這樣模式更改就不會破壞現有的消費者/生產者。

還有一個建議,無論您使用模式注冊表如何,我都建議在生產者和消費者中使用模式(json/avro/protbuf)來生成 model 個類,而不是添加為 lib。 您可以獲得架構並在構建步驟 (maven/gradle) 中包含一個插件來生成這些類。 始終將模式作為所有討論的真實來源,即使您是否在 Kafka 環境中使用模式注冊表也是如此。

schema registry 的另一大優勢是它會減少有線負載和 Kafka 代理日志的大小。 不需要發送整個 schema + body,我們只發送 schema Id + body,它會在 consumer 中被解密。 這將提高性能。

從操作的角度來看,模式注冊表可以充當模式的單一真實來源。 不利的一面是您還需要處理一個組件。

所以這取決於你的業務需求,你需要根據加號和減號進行調用。 但是在代碼中僅包含模式以在構建時生成 model 類,而不是在源代碼庫中提交/取決於其他團隊。

請檢查https://docs.confluent.io/platform/current/schema-registry/index.html https://docs.confluent.io/platform/current/schema-registry/avro.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM