Kafka集成SpringBoot

集成SpringBoot

  • 一、SpringBoot生产者
  • 二、SpringBoot消费者

SpringBoot是一个在JavaEE开发中非常常用的组件。可以用于Kafka的生产者,也可以用于SpringBoot的消费者。
Kafka集成SpringBoot_第1张图片
1)在IDEA中安装lombok插件,注意安装完后要重启;
2)SpringBoot环境准备

  • 创建一个Spring Initializer
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

一、SpringBoot生产者

  1. 修改SpringBoot核心配置文件application.properties,添加生产者相关信息
# 连接kafka集群
spring.kafka.bootstrap-servers=hadoop102:9092,hadoop103:9092

# key value的序列化
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
  1. 创建类ProducerController
@RestController
public class ProducerController {

    @Autowired
    KafkaTemplate<String, String> kafka;

    @RequestMapping("/smart")
    public String data(String msg){
        // 通过kafka发送出去
        kafka.send("first", msg);

        return "ok";
    }

}

二、SpringBoot消费者

  1. 修改SpringBoot核心配置文件application.properties,添加消费者相关信息
# 连接kafka集群
spring.kafka.bootstrap-servers=hadoop102:9092,hadoop103:9092

# key value的序列化
spring.kafka.consumer.key-serializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-serializer=org.apache.kafka.common.serialization.StringDeserializer

# 指定消费者组的group_id
spring.kafka.consumer.group-id=smart
  1. 创建类KafkaConsumer
@Configuration
public class KafkaConsumer {

    @KafkaListener(topics = "first")
    public void consumerTopic(String msg){
        System.out.println("收到消息: " + msg);
    }

}

你可能感兴趣的:(Kafka,kafka)