【发布时间】:2023-04-08 11:31:01
【问题描述】:
我正在尝试使用 Scala 为 Kafka 编写一个简单的 Avro 消息生成器。
我遇到的问题是发送速度很慢。
我正在这样做:
val message: GenericRecord = getRandomMessage()
val serializedMessage: Array[Byte] = serializeMessage(message)
val queueMessage = new ProducerRecord[String, Array[Byte]](topic, message.get("id").toString, serializedMessage)
producer.send(queueMessage)
println("Sent Message: "+ message)
在部署到我的集群时,以及从我的 IDE 运行时,发送消息的速度都非常慢。
从我读到的消息应该是异步的并且比这更快。
我有什么明显的遗漏吗?
谢谢!
【问题讨论】:
-
为什么每次发送都要刷?让 Kafka 客户端为您处理缓冲。
-
这只是我为了尝试而做的一个愚蠢的测试。我编辑并剪掉了那段代码。
-
您能定义一下性能不佳的确切含义吗?
-
消息似乎是同步发送的,每 10 秒或更长时间发送一条消息。 (又名“已发送消息:[...]”每 10 秒左右打印一次)
-
这是哪个 Kafka 版本?您使用的是哪个版本的 Kafka 生产者?
标签: scala apache-kafka avro kafka-producer-api