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

【大数据学习 | kafka】kafka的整体框架与数据结构

1. kafka的整体框架

首先kafka启动以后所有的broker都会向zookeeper进行注册,在/brokers/ids中以列表的形式展示所有的节点,在/controller节点中使用独享锁实现broker的选举,其中一个机器为主节点。其他的为从节点,选举的根本原则就是谁先来的谁就是主节点

broker0现在是controller节点,他会监听所有的broker节点的动态变化,然后选举出来所有的topic的分区的主从,这个选举完毕以后,所有的操作都会指向主分区,不管是生产数据还是消费数据都是主分区在管理,从分区只是同步数据的。

broker0选举完毕以后将数据上传到zookeeper中,记录在/broker/topics这个目录中,具体的topic信息都会被其他的broker节点进行同步过去,多个broker都会识别选举出来的主从分区信息

其中在zookeeper中的ISR它是数据的传递优先级别顺序,如上图中数据的传输应该先到leader节点所在的机器4上面然后数据在同步到其他的从分区中,从而所有的分区数据都同步完毕保持一致

ISR:即副本集。

数据生产和传输都会走主节点,topic正常对外提供服务

2. kafka的基本数据结构

kafka中的数据存储分为两个部分,分别是k-v两个部分,并且存储的数据都是二进制的我们在存储数据的时候要转换为二进制存储,使用的时候读出来也是二进制的,我们需要人为转换成自己想要的数据类型才能使用,这个和hbase的存储及其相似,但是其中的k一般我们都不会做任何操作,只放入value的值

注意,虽然数据分为k-v两个部分,但是不要把它当成map集合,相同的key的数据value不会被去重掉

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

相关文章:

  • 隐私保护下的数据提取策略
  • vue 和 django 报 CORS(跨域资源共享,Cross-Origin Resource Sharing)是一种跨域访问的机制,
  • 「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio 插件安装与配置
  • 【论文阅读】PGAN
  • 基于Unet卷积神经网络的脑肿瘤MRI分割
  • [java][基础]HTTPTomcatServlet
  • 【开源免费】基于SpringBoot+Vue.JS网上超市系统(JAVA毕业设计)
  • 【单片机】深入剖析USART与UART的区别
  • ‌Linux tac命令‌
  • 从简单的demo开始让您逐步了解GetX的用法
  • JAVA的动态代理
  • 「图文详解」Pycharm 远程服务器Debug
  • Golang反射在实际开发中的应用场景
  • 【二叉树】C非递归算法实现二叉树的先序、中序、后序遍历
  • Android——事件冲突处理
  • vue + elementui 全局Loading效果
  • 深度了解flink(十) JobManager(4) ResourceManager HA
  • 【万兴科技-注册_登录安全分析报告】
  • Android启动流程_Zygote阶段
  • 2022NOIP比赛总结
  • Leetcode 排序链表
  • 哈希函数简介
  • nginx------正向代理,反向代理生产,以及能否不使用代理详解
  • iptables限制docker端口禁止某台主机访问(使用DOCKER链和raw表的PREROUTING链)
  • 【VM实战】VMware迁移到VirtualBox
  • Android WebView加载不到cookie
  • c++qt
  • 零跑汽车嵌入式面试题汇总及参考答案
  • LC:贪心题解
  • ubuntu交叉编译dbus库给arm平台使用