添加成功回调类
@Component
public class KafkaSendResultHandler implements ProducerListener {
private static final Logger log = LoggerFactory.getLogger(KafkaSendResultHandler.class);
@Override
public void onSuccess(ProducerRecord producerRecord, RecordMetadata recordMetadata) {
String key = producerRecord.key().toString();
String topic = producerRecord.topic();
log.info("key:{},topic:{}, 发送成功回调",key,topic);
}
@Override
public void onError(ProducerRecord producerRecord, Exception exception) {
String key = producerRecord.key().toString();
String topic = producerRecord.topic();
log.info("key:{},topic:{}, 发送异常回调",key,topic);
}
}
生产者代码添加成功回调类
@Component
public class SendKafka{
@Autowired
private KafkaSendResultHandler producerListener;
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
public void sendKafka(){
try {
kafkaTemplate.setProducerListener(producerListener);
kafkaTemplate.send("testtopic","testkey","测试值").get();
} catch (Exception e) {
e.printStackTrace();
log.error("{}",e);
}
}
}
其他步骤
- kafka服务自带zookeeper下载与启动
- Spring boot配置kafka服务
- kafka生产者发送消息成功回调
- kafka根据ip端口获取消息队列上的topic
- kafka动态设置监听哪些topic
- 动态启动关闭kafka监听、设置默认不监听kafka
- kafka设置:1只接受消息、不发送消息;2只发送消息不接受消息;3既接受消息也发送消息;4既不接收消息也不发送消息
- kafka会把历史数据都获取下来
- Spring boot kafka执行多次多次消费