开发者社区> 问答> 正文

kafka自定义消息?报错

@卢禹 你好,想跟你请教个问题:这是我的代码,我想自定义消息并用producer发送到服务器上。然后不知道为什么不能通过。kafka版本是kafka_2.10-0.8.1.1。

自定义消息类代码:

producer代码:

报错信息:

展开
收起
爱吃鱼的程序员 2020-06-09 14:05:11 487 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    props.put("serializer.class"," kafka.serializer.StringEncoder");

    serializer.class要用kafka包中的,不是你自己写的,不知道你是一定要自己实现序列化的类还是只是要发数据,只是发数据的化用 kafka.serializer.StringEncoder吧


    回复 @卢禹:如果把消息定义成json格式,请问下具体怎么发送json格式的消息回复 @卢禹:他的文章是13年的那时候是kafka0.7现在的api已经变了.所以那个例子应该是不太行了,如果一定要那么实现建议你找找官方文档或者最近的例子回复 @Small雀:应该是kafka的版本的问题,kafka每个版本变化较大,我一般不这么实现自定义消息。个人建议用json格式,不需要自己实现serializer。你说的那个文章我大概看了下他用“-”分隔的数据,个人觉得不是特别合适,另外如果一定要实现,也不一定要在那层实现,可以在之前就把对象变成字符串来发送。如果不是极端考虑效率问题的化例子中可以使用ProducerData这个类型,而我不知道为什么无法使用这个类型,所以就用了KeyedMessage代替。StringEncoder只能实现发送String型的数据,我想发送我自定义的数据,例子地址是http://my.oschina.net/ielts0909/blog/100645?fromerr=6xU38Goj

    引用来自“卢禹”的评论

    props.put("serializer.class"," kafka.serializer.StringEncoder");

    serializer.class要用kafka包中的,不是你自己写的,不知道你是一定要自己实现序列化的类还是只是要发数据,只是发数据的化用 kafka.serializer.StringEncoder吧


    谢谢,我再继续尝试
    2020-06-09 14:05:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载