下面我会详细讲解Springboot 2.x集成Kafka 2.2.0的示例代码的完整攻略。
前置条件:
1. 已安装JDK和Maven;
2. 已安装并起动好Zookeeper和Kafka。
步骤一:创建Springboot项目
1. 打开IDEA
,在左侧导航栏中选择New Project
;
2. 在弹出对话框中选择Spring Initializr
,点击Next
;
3. 在Project SDK
下拉框中选择已安装的JDK版本,点击Next
;
4. 在项目详细信息输入框中填写项目名称、包名、描述等信息,点击Next
;
5. 在选择需要添加依赖的页面中,选择Spring Kafka
、Spring Web
和Spring Boot DevTools
,点击Next
;
6. 在最后一步中选择项目存放位置和其他设置,点击Finish
。
步骤二:添加Kafka依赖
在pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>2.2.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.2.0</version>
</dependency>
步骤三:配置Kafka
在application.properties
中添加以下Kafka相关配置:
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=kafka-group
spring.kafka.consumer.auto-offset-reset=latest
步骤四:创建消息发送者
创建消息发送者类KafkaProducer
,并添加以下代码:
@Service
public class KafkaProducer {
private static final Logger LOGGER = LoggerFactory.getLogger(KafkaProducer.class);
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
public void sendMessage(String topic, String message) {
LOGGER.info("Sending message to topic: {}", topic);
kafkaTemplate.send(topic, message);
}
}
上述代码中,我们通过@Autowired
使用了KafkaTemplate
类,它是Spring提供的用于发送Kafka消息的工具类。
步骤五:创建消息监听器
创建消息监听器类KafkaConsumer
,并添加以下代码:
@Service
public class KafkaConsumer {
private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class);
@KafkaListener(topics = "test")
public void listen(String message) {
LOGGER.info("Received message: {}", message);
}
}
上述代码中,我们通过@KafkaListener
注解指定了要监听的test
主题,当监听到该主题有消息时,就会调用listen
方法进行处理。
步骤六:创建测试接口
创建测试接口类TestController
,并添加以下代码:
@RestController
public class TestController {
@Autowired
private KafkaProducer kafkaProducer;
@RequestMapping("/send")
public void sendMessage() {
kafkaProducer.sendMessage("test", "Hello, Kafka!");
}
}
上述代码中,我们通过自动注入KafkaProducer
实例,然后在接口中调用sendMessage
方法给主题test
发送消息。接口地址:http://localhost:8080/send
。
步骤七:测试
启动项目,访问http://localhost:8080/send
接口,即可在控制台中看到监听器接收到的消息。
以上就是Springboot 2.x集成Kafka 2.2.0的示例代码的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot 2.x集成kafka 2.2.0的示例代码 - Python技术站