kafka-之Consumer客户端开发(包括参数配置及offset提交等)

本文详细介绍了Kafka Consumer客户端的开发,包括必要的参数配置如GROUP_ID_CONFIG、KEY_DESERIALIZER_CLASS_CONFIG等,订阅主题与分区的两种方式,以及consumer-offset提交的原理和手动提交的同步与异步方法。通过理解这些内容,可以帮助开发者更好地管理和控制Kafka消费者的消息消费。
摘要由CSDN通过智能技术生成

kafka-之Consumer客户端开发(包括参数配置及offset提交等)

kafka的ConsumerAPI与Producer ClientAPI一样也经历了2个大的版本,0.9x之前使用scala编写的成为Old Consumer API,0.9x版本以来推出的Java编写的客户端API被称为New Consumer API。这里我们只讨论新的Java API。

一个正常的消费者逻辑包括以下逻辑:

  • 创建一个消费者实例,并配置相关参数
  • 订阅主题
  • 拉取消息并消费
  • 提交offset消费偏移量
  • 关闭消费者实例

1 必要的参数配置

在创建一个消费者和时候,我们需要指定几个必要的参数

  • GROUP_ID_CONFIG
    • 消费者组
  • KEY_DESERIALIZER_CLASS_CONFIG
    • 消息key的反序列化方式,应该与生产者那边的序列化方式保持一致
  • VALUE_DESERIALIZER_CLASS_CONFIG
    • 消息value的反序列化方式,应该于生产者那边的序列化方式保持一致
  • BOOTSTRAP_SERVERS_CONFIG
    • 指定一个或者多个Kafka的节点,方便客户端获取kafka集群的元数据
    public static Properties initConsConfig() {
   
      
      	//配置必要的参数
        Properties prop = new Properties();

        prop.put(ConsumerConfig.GROUP_ID_CONFIG, "first-group1");
        prop.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
        prop.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
        prop.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");

        return prop;
    }

    public static void main(String[] args) {
   

      //配置必要参数
        Properties prop = initConsConfig();
       //构建消费者实例
        KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(prop);

      	//订阅主题
        consumer.subscribe(Collections.singletonList("topic1"));

        while (true) {
   
          	//拉取消息
            ConsumerRecords<String, String> records = consumer.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值