kafka介绍
全网最通俗易懂的Kafka入门_JavaMonsterr的博客-CSDN博客
安装
下载地址:Apache Kafka
windows 系统下3.0.0版本存在BUG,建议使用2.X版本
#启动zookeeper
zookeeper-server-start.bat ../../config/zookeeper.properties
#启动kafka
kafka-server-start.bat ../../config/server.properties
#默认端口:9092
kafka topic
#创建topic
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic hxzy
#查看topic
kafka-topics.bat --zookeeper localhost:2181 --list
#删除topic
kafka-topics.bat --delete --zookeeper localhost:2181 --topic hxzy
生产者、消费者测试
#生产者功能测试
kafka-console-producer.bat --broker-list localhost:9092 --topic hxzy
#消费者功能测试
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic hxzy --from-beginning
如果命令行乱码: 在命令行输入 chcp 65001 重启生产者、消费者命令行窗口即可
springboot整合kafka
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
pom.xml
spring:
kafka:
bootstrap-servers: localhost:9092
admin:
client-id: hxzy
生产者
@Service
public class MessageServiceKafkaImpl implements MessageService{
@Autowired
private KafkaTemplate<String ,String> kafkaTemplate;
@Override
public void sendMessage(String id) {
System.out.println("使用Kafka将待发信息纳入处理队列,id:"+id);
kafkaTemplate.send("hxzy_topic",id);
}
}
消费者
@Configurable
public class KafkaMessageListener {
@KafkaListener(topics = {"hxzy_topic"})
public void onMessage(ConsumerRecord<String,String> record){
System.out.println("消费者接收信息: "+record);
}
}