Kafka简介

Kafka基础理论及基本配置

简介

     Kafka 是一个开源分布式事件流(消息)平台。它有高吞吐量,高性能,持久化数据存储,支持在线水平扩展,可靠的特点。其架构图如下


kafka.jpg

基本运作模式

ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。
Producer将消息发送到Broker。
Broker负责将收到的消息存储到磁盘中。
Consumer负责从Broker订阅Topic并消费Event/Message。
Topic可细分为多个Partition。
Partition内用Offset保证消息分区有序性,一个Offset唯一对应一个消息。分区在存储层面可以看作一个可追加的日志(Log)文件。

image.png

多副本模式

    Kafka 为分区引入了多副本(Replica)机制,分区间采用“一主多从”模式,一个leader,多个slave,leader负责处理读写请求,follower只负责与leader副本的消息同步。

    分区中的所有副本统称为AR(Assigned Replicas),所有与leader副本保持一定程度同步的副本(包括leader副本在内)组成ISR(In-Sync Replicas),与leader副本同步滞后过多的副本(不包括leader副本)组成OSR(Out-of-Sync Replicas)
AR=ISR+OSR。在正常情况下 AR=ISR。

区间复制简介

HW与 LEO

    HW是High Watermark的缩写,俗称高水位,它标识了一个特定的消息偏移量(offset),消费者只能拉取到这个offset之前的消息。
    LEO是Log End Offset的缩写,它标识当前日志文件中下一条待写入消息的offset。


image.png

    在同步过程中,不同的 follower 副本的同步效率也不尽相同。在某一时刻follower1完全跟上了leader副本而follower2只同步了消息3,如此leader副本的LEO为5,follower1的LEO为5,follower2的LEO为4,那么当前分区的HW取最小值4,此时消费者可以消费到offset为0至3之间的消息。


image.png

    由此可见,Kafka 的复制机制既不是完全的同步复制,也不是单纯的异步复制。同步复制要求follower复制完,异步复制则不管follwer,都不行。

安装

先安装jdk,然后配置环境,后安装Zookeeper,然后调配置文件,再安装Kafka,然后调配置文件

服务端参数配置

    其实由上面的图例可知,对外broker连接的producer,consumer,zookeeper,对内则是自身,及内部的partition,以及传输的消息。因此对外的参数为(listeners):(producer,consumer),(zookeeper):(zookeeper),(broker):(broker),(log):(partition),(message):(message)

你可能感兴趣的:(Kafka简介)