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";
}
}