第五周_S-Spring Boot 整合 Kafka

298 阅读1分钟

上次搭建的 Kafka 单机环境已经完成了,现在应该整合 SpringBoot 简单使用 Kafka 了。let's go!

juejin.cn/post/715546…

新建一个 SpringBoot 项目

引入依赖

引入依赖:Spring-kafka

注意:SpringBoot 版本需要和 Spring-Kafka 版本对应,否则项目启动不了

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
    <version>2.7.1</version>
</dependency>

参考:官网查看对应版本关系spring.io/projects/sp…

添加配置文件

这里是最简单的配置,只需要配置 Kafka 的连接地址端口即可进行简单的测试。

spring:
  kafka:
    bootstrap-servers: XXXX:9092  #指定 Kafka Broker 地址,可以设置多个,以逗号分隔

代码

@RestController
public class KafkaDemo {
    private final Logger logger = LoggerFactory.getLogger(KafkaDemo.class);

		//Spring-kafka 提供的模板操作,直接引入
    @Autowired
    private KafkaTemplate kafkaTemplate;

  	//调用 KafkaTemplate#send(topic,message) 方法:将 message 写入 topic 分类下
    @GetMapping("/send/{input}")
    public void send(@PathVariable String input) {
        kafkaTemplate.send("topic_input", input);
    }

  	//@KafkaListener 注解,消费指定 topic 下面的消息
    @KafkaListener(topics = "topic_input")
    public void listen(String input) {
        logger.info("input value:{}", input);
    }

}

上面代码使用接口触发,如:

localhost:8080/send/hhh

  • 控制台会输出 hhh
  • 直接 kafak 服务器上用命令行测试消费消息,也会打印:hhh
    • bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic topic_input--from-beginning