当前位置: 首页 > news >正文

Flink kafka 数据汇不指定分区器导致的问题

背景

在flink中,我们经常使用kafka作为flink的数据汇,也就是目标数据的存储地,然而当我们使用FlinkKafkaProducer作为数据汇连接器时,我们需要注意一些注意事项,本文就来记录一下

使用kafka数据汇连接器

首先我们看一下常用的使用的情况:

    public FlinkKafkaProducer(String topicId,SerializationSchema<IN> serializationSchema,Properties producerConfig) {this(topicId,serializationSchema,producerConfig,//不指定分区器时,kafka默认使用FlinkFixedPartitioner分区器Optional.of(new FlinkFixedPartitioner<>()));}

可以看到在不指定分区器时,kafka默认使用FlinkFixedPartitioner作为分区器,我们查看一下FlinkFixedPartitioner的分区逻辑:

    public int partition(T record, byte[] key, byte[] value, String targetTopic, int[] partitions) {Preconditions.checkArgument(partitions != null && partitions.length > 0,"Partitions of the target topic is empty.");// 根据算子的任务索引号进行求余return partitions[parallelInstanceId % partitions.length];}

可以看到,同一个算子任务的记录都只会发送到同一个kafka分区上,当分区数大于算子任务数时,可以确定的是有一些分区是没有记录的,那你可能会问,有些分区没有记录有什么问题?

http://www.lryc.cn/news/194375.html

相关文章:

  • 【软考】14.1 面向对象基本概念/分析设计测试
  • MFC-对话框
  • Essential Steps in Natural Language Processing (NLP)
  • Flink中KeyBy、分区、分组的正确理解
  • QT6集成CEF3--01 准备工作
  • 随机误差理论与测量
  • 树莓派4b配置通过smbus2使用LCD灯
  • UPS 原理和故障案例分享
  • Stream流中的 max()和 sorted()方法
  • 云上攻防-云原生篇Docker安全权限环境检测容器逃逸特权模式危险挂载
  • PDE数值解中,为什么要引入弱解(weak solution)的概念?
  • 使用pdfjs实现在线预览pdf
  • 汇编语言基础
  • 格式工厂怎么把两个视频合并在一起
  • 2.MySQL表的操作
  • 网络安全之应急流程
  • [Python进阶] 操纵鼠标:pyuserinput
  • 【LeetCode】每日一题两数之和寻找正序数组的中位数找出字符串中第一个匹配项的下标在排序数组中查找元素的第一个和最后一个位置
  • 与HTTP相关的各种协议
  • 常见的网络攻击手段
  • 学习笔记---超基础+详细+新手的顺序表~~
  • Java高级-CompletableFuture并发编程利器
  • python、java、c++哪一个前景比较好?
  • 【排序算法】详解直接插入排序和希尔排序原理及其性能分析
  • JDK1.8对HashMap的优化、以及通过源码解析1,8扩容机制
  • Linux串口断帧处理
  • springboot集成kafka
  • 近期总结2023.10.16
  • 【EI会议征稿】第二届可再生能源与电气科技国际学术会议(ICREET 2023)
  • 让ChatGPT等模型学会自主思考!开创性技术“自主认知”框架