spring boot 2 跟kafka的配置
采用docker 安装kafka
docker run --name zookeeper -p 2181:2181 -t wurstmeister/zookeeperdocker run --name kafka -e KAFKA_ADVERTISED_HOST_NAME=localhost -e HOST_IP=localhost -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_ZOOKEEPER_CONNECT=zk:2181 -e KAFKA_BROKER_ID=1 -e ZK=zk -p 9092:9092 --link zookeeper:zk -t wurstmeister/kafka
其中pom依赖包为:
<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>
其次parent依赖于
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
如果采用io来管理那么需要依赖
其中必须应用到最新版本的管理。
<platform-bom.version>Cairo-SR1</platform-bom.version
<dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>${platform-bom.version}</version> <type>pom</type> <scope>import</scope> </dependency>
其中代码
package com.wj.product.common; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.kafka.annotation.KafkaListener; import org.springframework.kafka.core.KafkaTemplate; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @SpringBootApplication public class KafkaTest implements CommandLineRunner { public static Logger logger = LoggerFactory.getLogger(KafkaTest.class); public static void main(String[] args) { SpringApplication.run(KafkaTest.class, args).close(); } @Autowired private KafkaTemplate<String, String> kafkaTemplate; private final CountDownLatch latch = new CountDownLatch(3); @Override public void run(String... args) throws Exception { kafkaTemplate.send("myTopic", "foo1"); kafkaTemplate.send("myTopic", "foo2"); kafkaTemplate.send("myTopic", "foo3"); latch.await(60, TimeUnit.SECONDS); } @KafkaListener(topics = "myTopic") public void listen(ConsumerRecord<?, ?> cr) throws Exception { logger.info(cr.toString()); latch.countDown(); } }
本文介绍如何使用Spring Boot 2与Kafka进行集成,包括通过Docker部署Kafka集群,配置Spring Boot项目引入Kafka依赖,并实现消息发送与监听的功能。
484

被折叠的 条评论
为什么被折叠?



