我是个新手 Kafka
.
我是否能够发送具有多个值的消息?例如,我这里有一个例子,它产生一个随机数的消息,但是我想为每个产生的记录添加一个时间戳。标准方法是什么?
while(true){
for(int key=0; key < 10000; key++){
Random rand = new Random();
int n = rand.nextInt(50) + 1;
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date date = new Date();
ProducerRecord<String, String> producerRecord = new ProducerRecord<String, String>("java-topic", Integer.toString(1),Integer.toString(n));
producer.send(producerRecord);
Thread.sleep(10000);
}
//producer.close();
}
2条答案
按热度按时间vltsax251#
在内部,kafka代理(服务器)只存储一个字节数组。因此,必须对消息进行编码以包含所有值。
一种流行的方法是在消息中使用json编码
注意kafka服务器在接收到一条消息时添加了一个时间戳,该消息可以在consumerrecord.timestamp()中看到
fruv7luv2#
谢谢你的帮助!!输出答案