@卢禹 你好,想跟你请教个问题:这是我的代码,我想自定义消息并用producer发送到服务器上。然后不知道为什么不能通过。kafka版本是kafka_2.10-0.8.1.1。
自定义消息类代码:
producer代码:
报错信息:
props.put("serializer.class","kafka.serializer.StringEncoder");
serializer.class要用kafka包中的,不是你自己写的,不知道你是一定要自己实现序列化的类还是只是要发数据,只是发数据的化用kafka.serializer.StringEncoder吧
谢谢,我再继续尝试
StringEncoder只能实现发送String型的数据,我想发送我自定义的数据,例子地址是http://my.oschina.net/ielts0909/blog/100645?fromerr=6xU38Goj
例子中可以使用ProducerData这个类型,而我不知道为什么无法使用这个类型,所以就用了KeyedMessage代替。
回复应该是kafka的版本的问题,kafka每个版本变化较大,我一般不这么实现自定义消息。个人建议用json格式,不需要自己实现serializer。你说的那个文章我大概看了下他用“-”分隔的数据,个人觉得不是特别合适,另外如果一定要实现,也不一定要在那层实现,可以在之前就把对象变成字符串来发送。如果不是极端考虑效率问题的化
回复他的文章是13年的 那时候是kafka 0.7 现在的api已经变了.所以那个例子应该是不太行了,如果一定要那么实现建议你找找官方文档或者最近的例子
回复如果把消息定义成json格式,请问下具体怎么发送json格式的消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(8)
引用来自“卢禹”的评论
props.put("serializer.class","kafka.serializer.StringEncoder");
serializer.class要用kafka包中的,不是你自己写的,不知道你是一定要自己实现序列化的类还是只是要发数据,只是发数据的化用kafka.serializer.StringEncoder吧
谢谢,我再继续尝试
StringEncoder只能实现发送String型的数据,我想发送我自定义的数据,例子地址是http://my.oschina.net/ielts0909/blog/100645?fromerr=6xU38Goj
例子中可以使用ProducerData这个类型,而我不知道为什么无法使用这个类型,所以就用了KeyedMessage代替。
回复
应该是kafka的版本的问题,kafka每个版本变化较大,我一般不这么实现自定义消息。个人建议用json格式,不需要自己实现serializer。你说的那个文章我大概看了下他用“-”分隔的数据,个人觉得不是特别合适,另外如果一定要实现,也不一定要在那层实现,可以在之前就把对象变成字符串来发送。如果不是极端考虑效率问题的化
回复
他的文章是13年的 那时候是kafka 0.7 现在的api已经变了.所以那个例子应该是不太行了,如果一定要那么实现建议你找找官方文档或者最近的例子
回复
如果把消息定义成json格式,请问下具体怎么发送json格式的消息
props.put("serializer.class","kafka.serializer.StringEncoder");
serializer.class要用kafka包中的,不是你自己写的,不知道你是一定要自己实现序列化的类还是只是要发数据,只是发数据的化用kafka.serializer.StringEncoder吧