Kafka高可用性完成道理

  1 概述

  Kafka与传统音讯系统比拟,有以下分歧:

  它被设计为一个散布式系统,易于向外扩大;

  它同时为宣布和订阅供给高吞吐量;

  它支撑多订阅者,当掉败时能主动平衡花费者;

  它将音讯经久化到磁盘,因此可用于批量花费,例如ETL和及时应用依次。

  Kafka仰仗着自身的优势,愈来愈遭到互联网企业的喜爱,。Kafka作为一个贸易级音讯中间件,音讯牢靠性的主要性可想而知。若何确保音讯的准确传输?若何确保音讯的准确存储?若何确保音讯的准确花费?这些都是需求思考的后果。本文起首从Kafka的架构着手,先了解下Kafka的基起源基础理,然后经过对kakfa的存储机制、复制道理、同步道理、牢靠性和经久性保证等等一步步对其牢靠性停止剖析。

  2 Kafka系统架构

  在这里拔出图片刻画

  如上图所示,一个典范的Kafka系统架构包罗若干Producer(可所以效劳器日记,营业数据,页眼前端发生的page view等等),若干broker(Kafka支撑水平扩大,通俗broker数量越多,集群吞吐率越高),若干Consumer (Group),和一个Zookeeper集群。Kafka经过Zookeeper办理集群设备,选举leader,和在consumer group爆发变更时停止rebalance。Producer应用push(推)形式将音讯宣布到broker,Consumer应用pull(拉)形式从broker订阅并花费音讯。

  名词说明:

  Broker: 音讯中间件处理节点,一个Kafka节点就是一个broker,一个或很多个Broker可以构成一个Kafka集群

  Topic: Kafka依据topic对音讯停止归类,宣布到Kafka集群的每条音讯都需求指定一个topic

  Producer: 音讯花费者,向Broker发送音讯的客户端

  Consumer: 音讯花费者,从Broker读取音讯的客户端

  ConsumerGroup: 每个Consumer属于一个特定的Consumer Group,一条音讯可以发送到多个分歧的Consumer Group,然则一个Consumer Group中只能有一个Consumer可以花费该音讯

  Partition: 物理上的概念,一个topic可以分为多个partition,每个partition外部是有序的

  2.1 Topic & Partition

  一个topic可以认为一个一类音讯,每个topic将被分红多个partition,每个partition在存储层面是append log文件。任何宣布到此partition的音讯都邑被追加到log文件的尾部,每条音讯在文件中的位置称为offset(偏移量),offset为一个long型的数字,它唯一标记一条音讯。每条音讯都被append到partition中,是依次写磁盘,因此效力十分高(经历证,依次写磁盘效力比随机写内存还要高,这是Kafka高吞吐率的一个很主要的保证)。

本文地址//a/ylbz/20200511-329.html,转载请注明出处!

上一篇:聪明电厂三维可视化系统开辟 下一篇:没有了