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

【大数据学习 | kafka高级部分】kafka的数据同步和数据均衡

1. 数据同步

通过上图我们发现每个分区的数据都不一样,但是三个分区对外的数据却是一致的

这个时候如果第二个副本宕机了

但是如果是leader副本宕机了会发生什么呢?

2. 数据均衡

在线上程序运行的时候,有的时候因为上面副本的损坏,从而系统会自动选举出来一个新的leader并且分配到不同的节点上,有的时候这个leader的节点分布的并不是特别均匀,这个时候就需要进行均衡一下,使得每个broker的节点压力均衡

这个时候需要以下三个参数进行控制

参数解释
auto.leader.rebalance.enable系统每隔300s会自动检查系统的leader分布是否均匀,如果不均匀会自动进行leader的切换
leader.imbalance.per.broker.percentagebroker上的leader比例超过10%认为不均衡
leader.imbalance.check.interval.seconds检查间隔300s默认值

auto.leader.rebalance.enable 这个开关开启会自动选举或者切换leader节点,并且分布在不同的节点上,但是有的时候这个开关开启会影响系统性能,因为线上环境切换leader是比较繁琐的

但是不开的话可能会出现启动kafka而没有leader分区的情况

一般我们会关闭这个开关并且选择手动切换均衡

kafka-leader-election.sh --bootstrap-server hadoop106:9092 --topic topic_a --partition 1 --election-type preferred

优先在ISR中选举出来新的leader进行负载

并且我们也可以自己进行副本的位置进行设定

# 首先创建一个topic.json 输入如下内容
{"topics":[{"topic":"topic_a"}],"version":1}
# 整体代码命令如下
kafka-reassign-partitions.sh --bootstrap-server nn1:9092 --broker-list 0,1,2,3,4 --topics-to-move-json-file topic.json --generate

使用这个均衡优化命令生成优化计划

{"version":1,"partitions":[{"topic":"topic_a","partition":0,"replicas":[3,4,0],"log_dirs":["any","any","any"]},{"topic":"topic_a","partition":1,"replicas":[4,0,1],"log_dirs":["any","any","any"]},{"topic":"topic_a","partition":2,"replicas":[0,1,2],"log_dirs":["any","any","any"]},{"topic":"topic_a","partition":3,"replicas":[1,2,3],"log_dirs":["any","any","any"]}]}

修改其中副本的位置

并且设定ISR的优先顺序


http://www.kler.cn/a/385607.html

相关文章:

  • 【大数据学习 | kafka高级部分】kafka的kraft集群
  • 机器视觉和计算机视觉的区别
  • ReactPress:构建高效、灵活、可扩展的开源发布平台
  • 2024AAAI | DiffRAW: 利用扩散模型从手机RAW图生成单反相机质量的RGB图像
  • 【GVN】AWZ算法
  • 【Android】webview常用方法和使用
  • element-plus的Tree 树形控件添加图标
  • NAT网络工作原理和NAT类型
  • Maven(27)如何使用Maven进行依赖管理?
  • 【Axure高保真原型】PDF阅读器
  • Redis - 集群(Cluster)
  • RK3288 android7.1 适配 ilitek i2c接口TP
  • FET113i-S核心板已支持RISC-V,打造国产化降本的更优解 -飞凌嵌入式
  • Go-HTTP框架设计实现概述
  • Redis6:短信登录
  • 【Mysql NDB Cluster 集群(CentOS 7)安装笔记一】
  • 高级java每日一道面试题-2024年10月31日-RabbitMQ篇-RabbitMQ中vhost的作用是什么?
  • CSS:基础选择器,文字控制属性(HTML)
  • docker快速安装与配置mongoDB
  • 小型的网站服务器该如何选择配置?
  • java常用技术总结
  • vue3中利用路由信息渲染菜单栏
  • 动手学深度学习9.8. 束搜索-笔记练习(PyTorch)
  • 图像手动标注-labelme+yolo格式导出
  • 开源模型应用落地-glm模型小试-glm-4-9b-chat-压力测试(六)
  • 自动化测试工具Ranorex Studio(二十六)-对象库设置对话框