首页 > 其他分享 >Kafka

Kafka

时间:2024-12-24 19:26:56浏览次数:3  
标签:分区 Kafka Topic 日志 数据 Leader

分布式,大数据

高吞吐量,分布式发布订阅系统,可以收集并处理用户在网站中的所有动作流数据及物联网设备的采样信息

作用:消息的订阅与发布,系统间解耦,异步通信,削峰

Kafka Streaming应用在应用端,部署方便

主要研究:消息队列Message Queue 及Kafka Streaming流处理

消息队列工作模式:

至多一次

没有限制

Kafka集群以Topic形式负责分类集群中的Record,每个Topic底层都会对应一组分区的日志用于持久化的Recordr;

每个分区有一个Leader,其他Broker充当follower,leader负责数据读写,follwer负责同步数据

若机器宕机,其他follower会选举新的Leader负责读写,Leader的监控和Topic的部分元数据存储在ZooKeeper中

Kafka所有消息通过Topic为单位管理,每个Topic会有多个订阅者,Kafka负责管理集群中每个Topic的一组日志分区数据

生产者将数据发布到相应的Topic,之后通过轮询,哈希等负载均衡方式发送到Topic的哪个分区

每组日志分区是有序的不可变的日志序列,分区的每个Record被分配了唯一的序列化编号称为offset,集群会持久化发布到Topic中的Record信息,默认持久化7天

底层会定期检查日志文件,之后将过期的数据从log中移除,使用硬盘存储日志文件

分区之间消息的先后顺序无法保证,可以只采用一个分区,只能保证一个分区内部的消息的先后顺序

为什么设置分区?

分区越大,处理的写入的数据量越大,高并发,快速相应,处理并发能力越强

消费者:

消息者消费Topic中数据的时候,每个消费者会维护本次消费对应的offset,消费者消费完1批消息后会将本次消费的偏移量交给Kafka集群。消费者可以从一个Topic分区中的任意位置读取队列数据,因此多个消费者之间彼此独立

对Topic实现日志分区的目的:

每个服务器可能充当某些分区的Leader,也可能充当其他分区的follwer,负载得到很好的平衡;

运行日志超出单个服务器所能容纳的大小,每个单独的分区必须适合托管它的服务器,可以处理任何的数据

高性能

优化写入速度采用顺序写入和MMFile(内存映射文件)两种技术

不是实时写入磁盘

直接利用操作系统的Page实现文件到物理内存的直接映射,完成MMP映射之后用户对内存的所有操作直接被操作系统自动刷新到磁盘上,降低IO率

服务器相应客户端读取时,底层使用ZeroCopy技术,直接将数据通过内核空间传递输出,数据没有抵达用户空间

ZeroCopy示意图:

标签:分区,Kafka,Topic,日志,数据,Leader
From: https://blog.csdn.net/weixin_47559057/article/details/144701251

相关文章

  • Kafka集群新增节点后数据如何重分配
    新增节点的步骤将其他节点的server.properties配置文件拷贝后修改以下参数broker.idlog.dirszookeeper.connect数据迁移原理只有新增的Topic才会将数据分布在新节点上,如果要将现有数据也分配到新节点,需要将Topic中的数据迁移到新节点上。数据迁移过程是手动启动的,但是是......
  • 【杂谈】合理使用Kafka,防止消息丢失
    前言并非所有业务场景都要求消息绝对不丢失。对很多应用来说,为了追求更高的吞吐量,少量的消息丢失是可以容忍的。然而,在一些关键的业务场景中,确保消息不丢失至关重要。本文将重点讨论需要保证消息可靠性的场景,并提供相关的优化建议。消息丢失的场景消息丢失的场景可以归纳为三......
  • kafka教程
    kafka的安装以及使用kafka依赖jdk和zookeeper,jdk安装这里就不叙述了,从zookeeper开始介绍。一、zookeeper安装及使用1.单节点安装1.1安装tar-zxvfapache-zookeeper-3.8.0-bin.tar.gz-C/soft/ln-sv/soft/apache-zookeeper-3.8.0-bin/soft/zookeepercat>>/etc/profile......
  • SpringBoot支持Kafka多源配置的同时还要支持启停配置化,是真的会玩
    开心一刻今早,女朋友给我发微信她:宝贝,你要记住她:我可是你女朋友,你相亲就亲,想抱就抱她:不要老是问我,男生要主动一些我:可是你上次报警可不是这么说的基础回顾SpringBoot集成Kafka非常简单,我相信你们都会,但我还是想带你们回顾下;只需要进行以下几步即可完成SpringBoot与......
  • Spring Boot 集成 Kafka:构建高效的异步消息驱动系统
    SpringBoot集成Kafka:构建高效的异步消息驱动系统一、引言在当今分布式系统的架构中,异步消息处理扮演着至关重要的角色。Kafka作为一款高性能、高吞吐量的分布式消息队列,与SpringBoot框架的结合能够轻松实现系统间的解耦、异步通信以及流量削峰等功能,极大地提升系统......
  • Kafka服务端认证日志导致磁盘空间占满案例
    背景    某IP为44.2的服务器挂载的硬盘服务器磁盘空间占满突然故障排查过程查看docker容器磁盘SIZE查看docker容器使用磁盘大小此目前单独挂载路劲/data/docker使用du-sh*查看,发现kafka容器消耗91G空间查看具体容器,判断是kafkakafka容器状态是客户端认证识机制,Kafka日......
  • kafka消费者数大于分区数时,多余消费者不消费
    是的,当Kafka中的消费者数量大于分区数量时,多余的消费者将不会接收到消息,即它们不会参与消费过程。这是Kafka为了保证消息消费的顺序性和一致性而设计的一种机制。在Kafka中,每个分区(Partition)是一个有序的、不可变的消息序列,它可以被连续地追加。分区在物理上对应为一个或多个文件......
  • Kafka消费者减少和增多引起的Rebalance
    在Kafka中,消费者的增加和减少都可能触发消费者组的重平衡(Rebalance)过程。以下是关于Kafka消费者减少和增多引起的Rebalance的详细解释:一、消费者减少引起的Rebalance触发条件:当消费者组内的消费者数量减少时,无论是主动离开还是由于故障而掉线,都会触发Rebalance。影响:剩......
  • 拒绝 Helm? 如何在 K8s 上部署 KRaft 模式 Kafka 集群?
    首发:运维有术今天分享的主题是:不使用Helm、Operator,如何在K8s集群上手工部署一个开启SASL认证的KRaft模式的Kafka集群?本文,我将为您提供一份全面的实战指南,逐步引导您完成以下关键任务:配置KafkaSecret:管理用户密码和集群ID配置KafkaService:使用NodePort对外发......
  • kafkaui自定义过滤器
    importgroovy.json.JsonSlurper//假设这些变量已经在Groovy上下文中可用//partition,timestampMs,keyAsText,valueAsText,header,key,value//配置要过滤的目标名称deftargetDid=""//JSON解析defjsonSlurper=newJsonSlurper()//假设valueAsText......