2017-09-25 52 views
0

我正在使用Avro餵養Kafka系統,我想知道爲什麼Avro已經創建好了,對於哪種情況我們應該選擇Avro給Json。什麼是Jro的不適合Avro的scenerio

Json更適合互聯網溝通,比如RESTful請求,Avro更適合Hadoop生態系統嗎?

我搜索了一些答案,他們比較了壓縮的數據大小和效率,但我不確定這足以創建新的東西。

回答

0

事實上,寧靜的請求通常使用json交換數據。

尺寸和效率是一個有效的原因。它節省了帶寬,內存和存儲空間。與json相比,對於訪問某些字段而不將整個消息加載到內存中等操作也非常友好。

更高效地處理單個消息使得擴展必須處理數百萬個消息的應用程序變得更容易。

+0

謝謝你的回答。你能給我一個關於**訪問某些領域的小例子嗎?請不要加載整個消息**?我認爲這是關於Avro的一個非常有趣的功能。 –

+0

閱讀數據時,您可以使用只包含您感興趣的字段的模式定義。然後Avro將跳過您遺漏的字段。實際上,在閱讀時,您可以指定兩個模式,原始作者模式和只包含所需字段的閱讀器模式。這依賴於avro的模式解析功能。它的主要目的是允許在發佈端添加字段,而消費者仍然可以使用舊的模式讀取新消息。 –