2017-07-03 33 views
0

我想創建一個製片誰發送消息整數值 我已經通過這種方式配置的值類型:kafka生產者與整數值,IntegerSerializer不工作?

props.put("value.serializer","org.apache.kafka.common.serialization.IntegerSerializer"); 

但是當我檢查本地主機:3030(卡夫卡開發環境搬運工容器搭載Landoop),該值是像出頭符\ u0000 \ u0000的符\ u0000 \ U0001

有人可以給我一些提示嗎?謝謝

+1

我想我得到了答案,我想標記爲其他beginer: 1.消息值=>必須是類型字節,或者可以通過配置** value_serializer **序列化爲字節。 2.在主題中,它顯示格式爲'字節',如果你想看到真實的數據,你應該使用消費者配置的** value_deserializer **與相同類型的序列化程序 – llyjy21

+0

清楚...一切只是字節:-)我認爲Landoop用戶界面(我從來沒有用過)只是使用了一個字符串解串器,就像湯姆說的那樣。 – ppatierno

回答

0

在我看來,整數1已經使用IntegerSerializer(即4字節,網絡字節順序)進行了序列化,但已被反序列化,就好像它是UTF-8中的字符串或類似的8位編碼即這4個字節被視爲碼點,前3個爲空,最後一個爲1)。所以當你說「我檢查」時,你如何檢查?特別是你反序列化的字節整數,或其他?

+0

感謝您的回覆,「我檢查」意味着我只是檢查字節,而不是反序列化它們,這就是爲什麼我感到困惑,爲什麼它是\ u0000 \ u0000 \ u0000 \ u0001而不是1,我已經對此發表了評論誤解。 – llyjy21