添加成功回调类

@Component
public class KafkaSendResultHandler implements ProducerListener {

    private static final Logger log = LoggerFactory.getLogger(KafkaSendResultHandler.class);

    /**
     * kafka发送成功回调
     * @param producerRecord
     * @param recordMetadata
     */
    @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{
	//添加上面的KafkaSendResultHandler类
	@Autowired
    private KafkaSendResultHandler producerListener;
	
	@Autowired
    private KafkaTemplate<String, String> kafkaTemplate;
	
	public void sendKafka(){
        try {
			//发送消息前配置回调
            kafkaTemplate.setProducerListener(producerListener);
			//发送消息 testtopic为topic主题,testkey为key键,测试值为传的内容
			kafkaTemplate.send("testtopic","testkey","测试值").get();	//发送消息改为同步添加.get()
        } catch (Exception e) {
            e.printStackTrace();
            log.error("{}",e);
        }
    }
}

其他步骤

  1. kafka服务自带zookeeper下载与启动
  2. Spring boot配置kafka服务
  3. kafka生产者发送消息成功回调
  4. kafka根据ip端口获取消息队列上的topic
  5. kafka动态设置监听哪些topic
  6. 动态启动关闭kafka监听、设置默认不监听kafka
  7. kafka设置:1只接受消息、不发送消息;2只发送消息不接受消息;3既接受消息也发送消息;4既不接收消息也不发送消息
  8. kafka会把历史数据都获取下来
  9. Spring boot kafka执行多次多次消费
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐