首页 > 编程知识 正文

mapreduce工作原理,kafka 架构

时间:2023-05-04 20:37:54 阅读:33254 作者:1776

目录

模式映射

名词分析

工作流程

文件内部存储

查找数据和索引

架构图

名词分析Producer:消息生产者向kafkabroker发送消息的客户端Consumer:信息消费者、向kafkabroker提取信息的客户端http://www 消费群体中的每个消费者负责消费不同类别的数据,一个类别只能由一个群体中的消费者消费的消费群体之间互不影响。 所有的消费者都属于一个消费群体。 也就是说,消费群体是逻辑订阅者。 分区数和消费群内的消费者数接近时性能最好。 33558www.Sina.com/kafka服务器为broker。 一个集群由多个broker组成。 一个中介可以容纳多个主题。 可以理解为ConsumerGroup(CG):一个队列,生产者和消费者面临的是topic,即对kafka中的数据进行分类的作用。Broker:分区。 为了实现可扩展性,非常大的topic可以分布在多个broker (服务器)中,一个topic可以划分为多个分区,每个分区是有序队列,分区主要是负载平衡Topic:分区副本。 如果群集中的一个节点发生故障,kafka将提供复制机制,以确保该节点上的分区数据不会丢失,kafka将继续工作。 每个主题分区都有多个副本、leader和多个follower。 读取数据只能从leader读取。 每个Broker数Partition:分区的副本数必须小于或等于多个副本的“主”,生产者发送数据的对象和消费者消耗数据的对象为leader。 每个Replica:分区的多个副本中的“到”实时同步来自leader的数据,并与leader数据保持同步。 如果leader发生故障,一个follower将成为新的leader。 zk中存储了各个broker节点的相关信息,而且broker的leader和zk中选择的kafka都存储在0.9以前,消费者消费的信息offset也存储在zk中,但0.9以后,kafka的系统topic中

工作流程

Kafka中的信息按topic分类,生产者生产信息、消费者消费信息均面向topic。 topic是逻辑概念,而partition是物理概念,在log.dirs指定目录中存储有topic名分区号的partition。 每个分区对应一个日志文件,该日志文件存储producer生产的数据。 在Producer中创建的数据将继续添加到log文件的末尾,每个数据都有自己的offset。 消费群体的每个消费者都会实时记录自己消耗了哪些offset,以便在错误恢复时继续从上次的位置开始消费。

文件内部存储

生产者生产的消息将添加到log文件的末尾,因此为了防止log文件太大而导致数据放置效率低下,Kafka采用分片和索引机制,将每个分区分为多个segment。 每个segment对应于两个文件“. index”和“. log”文件。 这些文件位于文件夹下。 此文件夹的命名约定是主题名称分区编号

查找数据和索引

“. index”文件包含大量索引信息,而“. log”文件包含大量数据。 索引文件中的元数据指向相应数据文件中消息的物理偏移地址。 首先用二分搜索法位于索引处,接着根据索引位于数据的物理偏移处。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。