说明
使用发送方法后,会返回一个 ListenableFuture 对象,调用 get() 方法进行等待,就可以知道消息是否发送成功
代码
@GetMapping("/kafka5/{message}")
public String sendMessage5(@PathVariable("message") String msg) {
ListenableFuture<SendResult<String,Object>> future = kafkaTemplate.send("userlog", "key_test",msg);
try {
SendResult<String,Object> result = future.get();
String content = String.format("发送消息成功:%s - %s - %s",
result.getRecordMetadata().topic(),
result.getRecordMetadata().partition(),
result.getRecordMetadata().offset());
System.out.println(content);
}catch (Throwable e){
e.printStackTrace();
}
return "消息已发送";
}
执行结果:
发送消息成功:userlog - 0 - 2