消费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 方法中添加具体的业务处理逻辑。

相关推荐
狼爷1 分钟前
Go 没有 override?别硬套继承!用接口+嵌入,写更清爽的“覆盖”逻辑
java·go
初次攀爬者8 分钟前
Kafka的Rebalance基础介绍
后端·kafka
小兔崽子去哪了2 小时前
Java 自动化部署
java·后端
ma_king3 小时前
入门 java 和 数据库
java·数据库·后端
后端AI实验室3 小时前
我用Cursor开发了3个月,整理出这套提效4倍的工作流
java·ai
码路飞7 小时前
GPT-5.3 Instant 终于学会好好说话了,顺手对比了下同天发布的 Gemini 3.1 Flash-Lite
java·javascript
SimonKing7 小时前
OpenCode AI编程助手如何添加Skills,优化项目!
java·后端·程序员
Seven979 小时前
剑指offer-80、⼆叉树中和为某⼀值的路径(二)
java
怒放吧德德20 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆1 天前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端