Spring Cloud 使用 Kafka

496 阅读1分钟

Spring Cloud 使用 Kafka

添加依赖

    //kafka
    implementation 'org.springframework.cloud:spring-cloud-stream-binder-kafka'
    implementation 'org.springframework.cloud:spring-cloud-starter-stream-kafka'
   

配置一个 Consumer 和一个 producer , 在配置文件中配置:

server:
  port: 8002

spring:
  application:
    name: user-service
  kafka:
    bootstrap-servers: localhost:9092
  cloud:
    stream:
      #名称 - in - 分区 (in 表示 consumer, out 表示 producer )
      bindings:
        #consumer, topic: yswb, group: test
        sink-in-0:
          destination: yswb
          group: test
        producer-out-0:
          destination: yswb

然后编写 Consumer 代码:

@Configuration
public class KafkaConfig {
    /** 这里的方法名称要和配置文件中的相同,这里方法名是 sink ,配置文件就是 sink-in-0 或者 sink-out-0 */
    @Bean
    public Consumer<String> sink(){
        return s -> System.out.println("收到一条消息: "+s);
    }

}

然后是 Producer, 发送消息不用定义方法,直接用 StreamBridge 发送:

@Controller
public class UserController {

    @Resource
    StreamBridge streamBridge;

    @GetMapping("/test")
    @ResponseBody
    public String test(@RequestParam("msg")String msg){
        //这里和配置文件中保持相同
        streamBridge.send("producer-out-0",msg);
        return "OK";
    }
}