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

kafka知识小结

1.为什么分区数只能增加,不能减少?

按照Kafka现有的代码逻辑而言,此功能完全可以实现,不过也会使得代码的复杂度急剧增大。

另外实现此功能需要考虑的因素很多,比如删除掉的分区中的消息该作何处理?

  • 如果随着分区一起消失则消息的可靠性得不到保障;

  • 如果需要保留则又需要考虑如何保留,直接存储到现有分区的尾部,消息的时间戳就不会递增,如此对于Spark、Flink这类需要消息时间戳(事件时间)的组件将会受到影响;

  • 如果分散插入到现有的分区中,那么在消息量很大的时候,内部的数据复制会占用很大的资源,而且在复制期间,此主题的可用性又如何得到保障?

  • 同时,顺序性问题、事务性问题、以及分区和副本的状态机切换问题都是不得不面对的。

由此可知这个功能的收益点是很低的,如果真的需要实现此类的功能,完全可以重新创建一个分区数较小的主题,然后将现有主题中的消息按照既定的逻辑复制过去即可。

2、Kafka的ack机制

kafka的ack机制有3种:0,1,-1;这3种会围绕持久性和延时性来比较

  • 0:最差的持久性,最低的延时性

这一操作提供了一个最低的延迟,partition的leader副本接收到消息还没有写入磁盘就已经返回ack,当leader故障时有可能丢失数据

例如leader已经死亡,producer不知情,还会继续发送消息broker接收不到数据就会数据丢失

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

相关文章:

  • 算法刷题记录-DP(LeetCode)
  • Springboot整合Neo4J图数据库
  • Unity 2018发布在iOS 16.3偶尔出现画面不动的问题
  • 蠕虫病毒流量分析案例
  • Transformer(一)—— Attention Batch Normalization
  • 2023高教社杯数学建模C题思路代码 - 蔬菜类商品的自动定价与补货决策
  • 【C++漂流记】一文搞懂类与对象的封装
  • ctfshow 反序列化
  • 数据结构:线性表之-单向链表(无头)
  • 为IT服务台构建自定义Zia操作
  • 【C/C++】BMP格式32位转24位
  • 合宙Air724UG LuatOS-Air LVGL API控件-滑动条 (Slider)
  • SQLAlchemy 封装的工具类,数据库pgsql(数据库连接池)
  • 【Git】Git 基础
  • 腾讯云AI绘画:探究AI创意与技术的新边界
  • 离线数仓同步数据1
  • c语言开篇---跟着视频学C语言
  • 本地yum源-如学
  • 【实训】“宅急送”订餐管理系统(程序设计综合能力实训)
  • openeuler上安装polarismesh集群
  • Java基础——stream
  • Spring Quartz 持久化解决方案
  • 基于Java+SpringBoot+Vue前后端分离火锅店管理系统设计和实现
  • Unity——导航系统补充说明
  • nginx实现负载均衡load balance
  • 淘宝订单接口:连接消费者与商家的桥梁
  • 数据结构-第一期——数组(Python)
  • 八 动手学深度学习v2 ——卷积神经网络之卷积+填充步幅+池化+LeNet
  • SparkCore
  • 配置 Windows 系统环境变量