1.创建springboot项目 添加web依赖
2.整合kafka添加依赖 这里使用(2.3.6)可根据springboot版本添加相对应的kafka版本
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>2.3.6.RELEASE</version>
</dependency>
3.配置文件 application.yml
spring:
kafka:
bootstrap-servers: localhost8:9092
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
consumer:
group-id: test
enable-auto-commit: true
auto-commit-interval: 1000
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
4.创建生产者Producer
@RestController
@RequestMapping("/kafka")
public class Producer {
@Autowired
private KafkaTemplate kafkaTemplate;
@GetMapping("/send")
public void send(String topic, String json){
kafkaTemplate.send(topic, json); //使用kafka模板发送信息
}
}
5.创建消费者Consumer
@Component
public class Consumer {
/**
* 定义此消费者接收topics = "demo"的消息,与controller中的topic对应上即可
* @param record 变量代表消息本身,可以通过ConsumerRecord<?,?>类型的record变量来打印接收的消息的各种信息
*/
@KafkaListener(topics = "主题")
public void listen (ConsumerRecord<String,String> record){
JSONObject jsonObject=new JSONObject();
jsonObject.put("topic",record.topic());
jsonObject.put("data",record.value());
System.out.println(jsonObject);
}
}