flink(kafka连接器)

用法

KafkaSource<String> source = KafkaSource.<String>builder()
        .setBootstrapServers(bootstrapServers)//输入kafka的服务器地址
          .setTopics("kafka-boot","kafka-boot-s")//底层是一个数组可以订阅一个及以上的主题
        .setTopics("kafka-boot")
        .setGroupId("kafka_group_2")
        .setStartingOffsets(OffsetsInitializer.latest())
        .setValueOnlyDeserializer(new SimpleStringSchema())
        .build();

主题分区订阅

Kafka源码提供了三种方式

  • 主题列表:订阅所有列表中的主题。
KafkaSource.builder().setTopics("topic-a", "topic-b")
  • 主题模式:订阅正则表达式能匹配到的主题。
KafkaSource.builder().setTopicPattern("topic.*")
  • 分区集:订阅提供的分区集中的分区。
final HashSet<TopicPartition> partitionSet = new HashSet<>(Arrays.asList(
        new TopicPartition("topic-a", 0),    // Partition 0 of topic "topic-a"
        new TopicPartition("topic-b", 5)));  // Partition 5 of topic "topic-b"
KafkaSource.builder().setPartitions(partitionSet)

反序列化程序 

解析 Kafka 消息需要反序列化器。Deserializer(反序列化模式)可以通过 配置setDeserializer(KafkaRecordDeserializationSchema),其中 KafkaRecordDeserializationSchema定义了如何反序列化 Kafka ConsumerRecord。

import org.apache.kafka.common.serialization.StringDeserializer;
KafkaSource.<String>builder().setDeserializer(KafkaRecordDeserializationSchema.valueOnly(StringSerializer.class));

起始偏移量

Kafka 源可以通过指定从不同的偏移量开始消费消息 OffsetsInitializer。

KafkaSource.builder()
         // Start from committed offset of the consuming group, without reset strategy
         .setStartingOffsets(OffsetsInitializer.committedOffsets())
          // Start from committed offset, also use EARLIEST as reset strategy if committed offset doesn't exist
          .setStartingOffsets(OffsetsInitializer.committedOffsets(OffsetResetStrategy.EARLIEST))
          // 从大于等于此时间戳开始的偏移量开始
          .setStartingOffsets(OffsetsInitializer.timestamp(1592323200L))
          // 从最早的偏移量开始
          .setStartingOffsets(OffsetsInitializer.earliest())
          // 从最新的偏移量开始
          .setStartingOffsets(OffsetsInitializer.latest())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值