kafka教程-springboot生产者同步发送消息

说明

使用发送方法后,会返回一个 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

原文出处:/show_1IXNFIDWumG.html