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

相关推荐
苦学编程的谢3 分钟前
Mybatis_4
java·spring boot·tomcat·mybatis·mybatis_plus
她说..13 分钟前
MybatisPlus-快速入门
java·spring boot·spring cloud·微服务·mybatis·mybatisplus
哈密瓜刨冰19 分钟前
HTTP 协议的基本格式和 fiddler 的用法
java
砖头拍死你39 分钟前
51单片机如何使用printf打印unsigned long的那些事
java·前端·51单片机
架构师沉默1 小时前
让我们一起用 DDD,构建更美好的软件世界!
java·后端·架构
胖头鱼不吃鱼-1 小时前
Go 原理之 GMP 并发调度模型
java·jvm·golang
JosieBook1 小时前
【IDEA】idea怎么修改注册的用户名称?
java·intellij-idea·策略模式
tuokuac1 小时前
创建的springboot工程java文件夹下还是文件夹而不是包
java·spring boot·后端
码界奇点2 小时前
Java同步锁性能优化:15个高效实践与深度解析
java·开发语言·性能优化·java-ee·同态加密
积极向上的zzz2 小时前
java中一些数据结构的转换
java·开发语言·数据结构