在Springboot项目中集成Kafka,并实现消息的发送和接收
kafka单实例环境搭建(windows)
- 下载最新的kafka:https://mirrors.shu.edu.cn/apache/kafka/2.1.1/kafka_2.12-2.1.1.tgz
- 下载完后解压
- 启动kafka自带的zookeeper(或者使用已经搭建好的zookeeper环境,在config/server.properties中修改):
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
- 启动kafka:
bin\windows\kafka-server-start.bat config/server.properties
在项目中集成kafka
在pom.xml
中引入kafka依赖:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
在application.properties文件中配置kafka服务器地址、端口等信息:
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=myGroup #仅消息消费者需要配置此属性
发送mq消息到demo_queue
队列:
kafka允许程序运行时动态创建消息队列,因此我们不必提前在kafka中创建需要使用的消息队列.
@Service
public class ClientService {
@Autowired
KafkaTemplate<String,String> kafkaTemplate;
public String sendAMessage() {
//kafka
kafkaTemplate.send("demo_queue", "a message");
return "success";
}
}
接收mq消息:
@Service
@Slf4j
public class ServiceAService {
@KafkaListener(topics = "demo_queue")
public void processMessage(String content) {
log.debug("收到了一个消息:{}",content);
}
}
完。