Java 将字符串数组发送到Kafka主题

Java 将字符串数组发送到Kafka主题,java,arrays,apache-spark,apache-kafka,Java,Arrays,Apache Spark,Apache Kafka,我有一个Java应用程序,它将推特数据流化并发送到Kafka主题。它们最终通过火花流进行处理 目前,我只发送了String对象。如果我想发送String[]数组,该怎么办?如何设置序列化/反序列化 感谢您的帮助。您可以实现一个自定义序列化程序/反序列化程序,其中第一个元素应该是数组中的元素数(编码为整数),然后是数组中编码为字符串长度(整数)的每个字符串后跟构成字符串的字节。您可以使用序列化、JSON、XML、Avro的变体序列化数组。。在另一边读。好的,我可以试试。但是现在还没有任何字符串数组

我有一个Java应用程序,它将推特数据流化并发送到Kafka主题。它们最终通过火花流进行处理

目前,我只发送了
String
对象。如果我想发送
String[]
数组,该怎么办?如何设置序列化/反序列化


感谢您的帮助。

您可以实现一个自定义序列化程序/反序列化程序,其中第一个元素应该是数组中的元素数(编码为整数),然后是数组中编码为字符串长度(整数)的每个字符串后跟构成字符串的字节。

您可以使用序列化、JSON、XML、Avro的变体序列化数组。。在另一边读。好的,我可以试试。但是现在还没有任何字符串数组编码器/解码器吗?目前Kafka支持原语类型序列化程序(整数、布尔值、字符串等)。作为二进制内容的仅数组字节[]。当然,我的建议比使用JSON序列化的级别低,JSON序列化更简单,但使用更多字节。好的,这是最接近我问题的解决方案。最后一件事:我有一个制作人,我设置它发送字符串。如果我将序列化更改为您提示的自定义序列化,那么我用来发送到其他主题的其他字符串呢?当然,当您在不使用模式注册表(即使用Avro支持)的情况下处理序列化/反序列化时,您会遇到一个问题,即未更新的使用者无法理解消息。他们需要使用新的反序列化程序以正确的方式获取消息。如果你已经用简单的字符串填充了主题,那可能是个问题。