SpringBoot中使用Apache Kafka客户端(消费者)

问题

Spring工程中怎样使用Kafka客户端接收消息。注意:这里是在SpringBoot里面集成Kafka客户端,不是Spring Cloud Stream Kafka流处理框架,这里使用手动提交Kafka位移。

pom.xml

<dependency>
     <groupId>org.springframework.kafka</groupId>
     <artifactId>spring-kafka</artifactId>
 </dependency>

application.yaml

spring:
  kafka:
    consumer:
      # kafka集群地址
      bootstrap-servers: xxxx.com:6002
      # 消费组
      group-id: xxxx
      # 消费偏移量策略
      auto-offset-reset: earliest
      # SASL_PLAINTEXT 接入方式
      security:
        protocol: SASL_PLAINTEXT
      # poll最大消息条数 
      max-poll-records: 30
      # 反序列化方式
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      properties:
        # 两次Poll之间的最大允许间隔
        session:
          timeout:
            ms: 30000
        # SASL 采用 Plain 方式
        sasl:
          mechanism: PLAIN
      # 手动提交
      enable-auto-commit: false
    # jaas配置
    jaas:
      enabled: true
      login-module: org.apache.kafka.common.security.plain.PlainLoginModule
      options:
        username: xxxxxxxx
        password: xxxxxxx
    listener:
      ack-mode: MANUAL_IMMEDIATE

Java

@Slf4j
@Service
public class KafkaServiceImpl implements KafkaService {

    @KafkaListener(topics = "主题名称")
    @Override
    public void listen(String message, Acknowledgment ack) {
        log.info(String.format("Kafka消息:%s",message));
        // 手动提交kafka
        ack.acknowledge();
    }
}

这里主要就是接收Kafka过来的消息。

总结

SpringBoot中使用Apache Kafka客户端还是提简单的,相比Spring Cloud Stream Kafka流处理框架而言。

参考:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Boot应用程序集成Kafka消费者,您需要完成以下步骤: 1. 引入Kafka客户端依赖项 在Maven或Gradle构建文件添加Kafka客户端依赖项。例如,在Maven添加以下依赖项: ``` <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.6.7</version> </dependency> ``` 2. 配置Kafka消费者Spring Boot应用程序,您可以使用application.properties或application.yml文件配置Kafka消费者。以下是一个示例application.yml文件: ``` spring.kafka.consumer.bootstrap-servers=localhost:9092 spring.kafka.consumer.group-id=my-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 ``` 这些属性指定了Kafka消费者连接到的Kafka服务器,消费者所属的消费组以及如何处理消费者Kafka服务器读取的消息。 3. 创建Kafka消费者Spring Boot应用程序,您可以使用Spring Kafka提供的KafkaTemplate类来创建Kafka消费者。以下是一个示例代码片段: ``` @Service public class KafkaConsumerService { @KafkaListener(topics = "my-topic") public void listen(String message) { // 处理接收到的消息 } } ``` 使用@KafkaListener注释将这个方法标记为Kafka消费者。在这个示例消费者订阅名为“my-topic”的Kafka主题,并在接收到消息时调用listen()方法。 4. 运行应用程序 现在,您可以运行Spring Boot应用程序并开始使用Kafka消费者。当有新的消息发布到“my-topic”主题时,Kafka消费者将自动从Kafka服务器读取消息并将其发送到KafkaConsumerService类的listen()方法进行处理。 注意:在运行应用程序之前,请确保Kafka服务器正在运行,并且“my-topic”主题已经创建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值