2016-09-23 15 views

回答

0

我想如果你知道序列化的作用可能會有幫助,所以Kafka的工作方式是通過查看任何消息的字節數組(byte [])。卡夫卡永遠不會打開你的消息來確定它的int或double或string,而是假定你發送的是byte []。

但是爲了使開發更容易,生產者和消費者Kafka已經定義了串行器和解串器接口,它們是成對工作的。所以,如果你知道你想發佈Integer作爲消息使用IntegerSerializer將其轉換爲byte []並將其轉交給使用者的kafka,那麼你知道該消息是使用IntegerSerializer序列化的,所以你使用IntegerDeserializer。同樣的方法,如果你有自定義java對象,那麼你將不得不找出一種方法(默認java或Kyro序列化程序)將java對象轉換爲生產者中的byte []和相應的Deserializer以將byte []轉換回您的java對象。

希望幫助

相關問題