kafka自定义消息

发布于 2021-11-30 18:09:37 字数 623 浏览 721 评论 8

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

自定义消息类代码:

producer代码:

报错信息:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

夜司空 2021-12-01 12:08:12

引用来自“卢禹”的评论

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

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

眼眸 2021-12-01 12:08:12

谢谢,我再继续尝试

泛泛之交 2021-12-01 12:08:05

StringEncoder只能实现发送String型的数据,我想发送我自定义的数据,例子地址是http://my.oschina.net/ielts0909/blog/100645?fromerr=6xU38Goj

飘过的浮云 2021-12-01 12:08:03

例子中可以使用ProducerData这个类型,而我不知道为什么无法使用这个类型,所以就用了KeyedMessage代替。

时光清浅 2021-12-01 12:07:19

回复
应该是kafka的版本的问题,kafka每个版本变化较大,我一般不这么实现自定义消息。个人建议用json格式,不需要自己实现serializer。你说的那个文章我大概看了下他用“-”分隔的数据,个人觉得不是特别合适,另外如果一定要实现,也不一定要在那层实现,可以在之前就把对象变成字符串来发送。如果不是极端考虑效率问题的化

凌乱心跳 2021-12-01 12:00:16

回复
他的文章是13年的 那时候是kafka 0.7 现在的api已经变了.所以那个例子应该是不太行了,如果一定要那么实现建议你找找官方文档或者最近的例子

悸初 2021-12-01 11:00:07

回复
如果把消息定义成json格式,请问下具体怎么发送json格式的消息

瑾夏年华 2021-12-01 07:57:08

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文