SpringCloud Schema注冊(cè)流程(序列化)

2023-11-28 15:38 更新

注冊(cè)過程的第一部分是從通過通道發(fā)送的有效負(fù)載中提取模式。諸如SpecificRecordGenericRecord之類的Avro類型已經(jīng)包含一個(gè)架構(gòu),可以從實(shí)例中立即檢索該架構(gòu)。對(duì)于POJO,如果將spring.cloud.stream.schema.avro.dynamicSchemaGenerationEnabled屬性設(shè)置為true(默認(rèn)值),則將推斷模式。

圖33.1 Schema作家解析過程

模式解析

獲得一個(gè)模式,轉(zhuǎn)換器從遠(yuǎn)程服務(wù)器加載其元數(shù)據(jù)(版本)。首先,它查詢本地緩存。如果未找到結(jié)果,它將把數(shù)據(jù)提交給服務(wù)器,服務(wù)器將提供版本信息。轉(zhuǎn)換器始終緩存結(jié)果,以避免為每個(gè)需要序列化的新消息查詢Schema服務(wù)器的開銷。

圖33.2 Schema注冊(cè)流程

注冊(cè)

使用架構(gòu)版本信息,轉(zhuǎn)換器將消息的contentType標(biāo)頭設(shè)置為攜帶版本信息,例如:application/vnd.user.v1+avro


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)