Kafka:分布式消息队列

1. 简介

介绍 Kafka 的概述、优势和劣势,以及应用场景。

2. 基本概念

2.1 架构

一个典型的 Kafka 体系架构包括若干 Producer、若干Broker、若干 Consumer,以及一个ZooKeeper集群。

  • ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Kafka通过ZooKeeper来实施对元数据信息的管理,包括集群、broker、主题、分区等内容。
  • Producer将消息发送到Broker,Broker负责将收到的消息存储到磁盘中。
  • 而Consumer负责从Broker订阅并消费消息。
  • Broker:服务代理节点。对于Kafka而言,Broker可以简单地看作一个独立的Kafka服务节点或Kafka服务实例。大多数情况下也可以将Broker看作一台Kafka服务器,前提是这台服务器上只部署了一个Kafka实例。一个或多个Broker组成了一个Kafka集群。

2.2 Topic和Partition

Kafka中的消息以Topic为单位进行归类,生产者负责将消息发送到特定的Topic(发送到Kafka集群中的每一条消息都要指定一个主题),而消费者负责订阅主题并进行消费。

Topic是一个逻辑上的概念,它还可以细分为多个分区,一个分区只属于单个Topic,很多时候也会把分区称为主题分区(Topic-Partition)。同一Topic下的不同分区包含的消息是不同的,分区在存储层面可以看作一个可追加的日志(Log)文件,消息在被追加到分区日志文件的时候都会分配一个特定的偏移量(offset)。offset是消息在分区中的唯一标识,Kafka通过它来保证消息在分区内的顺序性,不过offset并不跨越分区,也就是说,Kafka保证的是分区有序而不是主题有序

从Kafka的底层实现来说,主题和分区都是逻辑上的概念,分区可以有一至多个副本,每个副本对应一个日志文件,每个日志文件对应一至多个日志分段(LogSegment),每个日志分段还可以细分为索引文件、日志存储文件和快照文件等。

2.3 AR、ISR、OSR

分区中的所有副本统称为AR(Assigned Replicas)。所有与leader副本保持一定程度同步的副本(包括leader副本在内)组成ISR(In-Sync Replicas),ISR集合是AR集合中的一个子集。消息会先发送到leader副本,然后follower副本才能从leader副本中拉取消息进行同步,同步期间内follower副本相对于leader副本而言会有一定程度的滞后。前面所说的“一定程度的同步”是指可忍受的滞后范围,这个范围可以通过参数进行配置。与leader副本同步滞后过多的副本(不包括leader副本)组成OSR(Out-of

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值