2017-07-03 131 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

相关问题