消费kafka消息示例

以下是使用 Java 结合 Spring Kafka 框架来监听 updated-topic-test 这个 Kafka Topic 的详细实现步骤及代码示例,用于捕获人员信息变更的事件。

1. 添加依赖

pom.xml 文件中添加 Spring Kafka 相关依赖:

复制代码
<dependencies>
    <!-- Spring Boot Starter for Apache Kafka -->
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
    </dependency>
    <!-- Spring Boot Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
</dependencies>

2. 配置 Kafka

application.properties 或者 application.yml 文件中配置 Kafka 的连接信息,包括 Kafka 服务器地址、消费者组 ID 等。假设Kafka 服务器地址是 localhost:9092,消费者组 ID 为 person-info-change-group

application.properties 示例
复制代码
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=person-info-change-group
spring.kafka.consumer.auto-offset-reset=earliest
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
application.yml 示例
复制代码
spring:
  kafka:
    bootstrap-servers: localhost:9092
    consumer:
      group-id: person-info-change-group
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer

3. 创建 Kafka 监听器

编写一个服务类,使用 @KafkaListener 注解来监听 updated-topic-test 这个 Topic:

复制代码
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service;

@Service
public class PersonInfoChangeListener {

    @KafkaListener(topics = "updated-topic-test", groupId = "person-info-change-group")
    public void listen(String message) {
        System.out.println("Received person info change message: " + message);
        // 在这里可以添加处理人员信息变更的具体业务逻辑
        // 例如更新本地缓存、调用其他服务等
        processPersonInfoChange(message);
    }

    private void processPersonInfoChange(String message) {
        // 具体的业务处理逻辑
        // 比如解析消息内容,更新相关数据等
        System.out.println("Processing person info change: " + message);
    }
}

4. 启动 Spring Boot 应用

创建一个 Spring Boot 主类,启动应用程序以开始监听 Kafka Topic:

复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class KafkaPersonInfoChangeApp {

    public static void main(String[] args) {
        SpringApplication.run(KafkaPersonInfoChangeApp.class, args);
    }
}

5. 处理认证(如果需要)

如果测试地址需要用户名和密码进行认证,可以在配置中添加相应的安全认证信息。在 application.properties 中添加如下配置:

复制代码
spring.kafka.consumer.properties.security.protocol=SASL_PLAINTEXT
spring.kafka.consumer.properties.sasl.mechanism=PLAIN
spring.kafka.consumer.properties.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="your-username" password="your-password";

your-usernameyour-password 替换为实际的测试用户名和密码。

总结

按照上述步骤,可以实现一个 Java 程序来监听 updated-topic-test 这个 Kafka Topic,当有人员信息变更的消息发送到该 Topic 时,程序会捕获并处理这些消息。可以根据实际需求在 processPersonInfoChange 方法中添加具体的业务处理逻辑。

相关推荐
-曾牛23 分钟前
【LangChain4j快速入门】5分钟用Java玩转GPT-4o-mini,Spring Boot整合实战!| 附源码
java·开发语言·人工智能·spring boot·ai·chatgpt
kfepiza30 分钟前
HttpSessionListener 的用法笔记250417
java·笔记·servlet·tomcat
冬天vs不冷34 分钟前
SpringBoot条件注解全解析:核心作用与使用场景详解
java·spring boot·python
百锦再1 小时前
Android Studio 实现自定义全局悬浮按钮
android·java·ide·app·android studio·安卓
百锦再1 小时前
Android Studio 项目文件夹结构详解
android·java·ide·ios·app·android studio·idea
阿达King哥1 小时前
Java虚拟机(JVM)平台无关?相关?
java·jvm
不是AI1 小时前
【Java编程】【计算机视觉】一种简单的图片加/解密算法
java·算法·计算机视觉
森叶1 小时前
Java NIO & Java 虚拟线程(微线程)与 Go 协程的运行原理不同 为何Go 能在低配机器上承接10万 Websocket 协议连接
java·websocket·nio
程序员小蘇2 小时前
一天一个java知识点----Tomcat与Servlet
java·servlet·tomcat
Moso_Rx2 小时前
JavaEE——线程安全
java·安全·java-ee