让我告诉你Kafka元数据都存了啥

创作内容丰富的干货文章很费心力,感谢点过此文章的读者,点一个关注鼓励一下作者,激励他分享更多的精彩好文,谢谢大家!


Kafka相关的元数据抽象类为Metadata,介绍其中几个重要属性。

  • refreshBackoffMs,用于控制生产者重新加载元数据的重试间隔时间。默认值是100毫秒。

  • metadataExpireMs,用于控制客户端缓存的元数据信息的有效期。在客户端向Kafka集群发送请求之前,元数据信息被认为有效的最长时间。默认值是300000毫秒,即5分钟。

  • lastRefreshMs,这个变量记录了客户端最后一次成功刷新元数据的时间戳(以毫秒为单位)。

  • lastSuccessfulRefreshMs,用于记录上一次成功刷新元数据的时间戳(以毫秒为单位)。

  • requestVersion,用于表示当前客户端所使用的Kafka协议版本。这个版本号决定了客户端可以支持的API功能以及与Kafka集群进行通信时使用的数据格式。

  • clusterResourceListeners,用于指定一组监听器,这些监听器会在客户端检测到Kafka集群资源发生变化时被触发。

  • lastSeenLeaderEpochs,用于记录客户端最后一次看到每个分区的领导者Epoch。

Kafka集群元数据抽象类为Cluster,介绍其中几个重要属性。

  • isBootstrapConfigured,用于检查Kafka集群是否完成引导配置。

  • nodes,用于存储Kafka集群中的节点信息。

  • unauthorizedTopics,用于存储未授权的Topic集合。

  • internalTopics,Kafka框架内部使用的Topic集合。

  • controller,这个成员变量及其重要,它的类型是Node,用于标识当前集群中负责协调和管理分区副本的控制器节点。控制器在Kafka集群中主要从事以下工作:通过Node类中的id成员变量,可以迅速定位集群中哪一个Broker承担着控制器的角色。当集群进行如leader选举、副本分配、集群元数据更新等操作时,通过访问controller变量,可以确保上述操作逻辑能正确指向对应的Broker。controller变量的存在让集群内其他组件能明确知晓与哪个节点进行元数据交互,保证集群状态的一致性。

  • partitionByTopicPartition,用于根据主题分区获取分区信息。

  • partitionsByTopic,用于根据主题名称获取该主题下所有分区信息集合。

  • availablePartitionsByTopic,用于根据主题名称获取该主题下所有可用分区信息集合。

  • partitionsByNode,用于根据节点编号,获取该节点存储的分区信息集合,分区可能属于不同的Topic。

  • nodesById,用于根据传入整型key,获取对应的节点类型。

  • clusterResource,集群资源抽象类。

Kafka分区信息抽象类为PartitionInfo,介绍其中几个重要属性。

  • topic,用于表示分区对应的主题。

  • partition,用于表示代表几号分区。

  • leader,用于表示这个分区的主节点在哪一个Broker上。

  • replicas,用于表示分区副本存储的节点,以数组形式存储。

  • inSyncReplicas,用于表示分区同步副本存储的节点,以数组形式存储。同步副本是指那些已经和主副本存储记录一致的副本。

  • offlineReplicas,用于表示分区不在线的副本对应的节点。不在线副本是指可能由于网络问题、硬件故障无法与主副本通信或同步数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏日彩虹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值