将图像(.png或.jpg)从kafkaProducer发送/处理到kafkaConsumer?

时间:2019-04-08 10:41:45

标签: apache-kafka

我对kakfa / spark-streaming非常陌生。我的用例是通过kafka生产者发送图像并从kafka消费者那里捕获它。 我进行了一些研究,发现图像必须转换为二进制或字节格式,但是找不到任何合适的来源来继续使用它。

到目前为止我做了什么:

1.Started zookeeper
2.Started server
3.created a new topic
4.started a producer to send(eg: JSON) - kafka-console-producer.sh --broker-list localhost:9092 --topic send_json < materials.json
5.started a consumer to recieve 

如何以类似方式发送.jpg或.png文件? 郎:scala或pyspark

1 个答案:

答案 0 :(得分:1)

最小示例(标量):

val props = new Properties()
props.put("bootstrap.servers", "localhost:9092")
props.put("key.serializer", "org.apache.kafka.common.serialization.LongSerializer")
props.put("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer")

val producer = new KafkaProducer(props)
val data = Files.readAllBytes(Paths.get("/path/to/file"))

val record = new ProducerRecord[Long, Array[Byte]]("yourtopic" , data)
producer.send(record)
producer.close

如果图像变大,请记住这一点How can I send large messages with Kafka (over 15MB)?


如果要使用kafka-console-producer:

kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic < my_file.txt