Kafka介绍

Kafka简介

Apache Kafka是一个分布式消息发布-订阅系统。他最初由LinkedIn开发,后来成为Apache项目的一部分。Kafka是快速、可扩展、分布式的。
和其他消息系统(ActiveMQ、RabbitMQ、ZeroMQ等)相比,Kafka有以下优点:

  • 分布式系统设计,很容易扩展
  • 对于消息的发布和订阅都有非常高的吞吐量
  • 支持多用户订阅,在消费失败时自动平衡多个消费者

Kafka的逻辑组成

这里写图片描述

Broker (Kafka Server)

Kafka集群包含一个或多个服务器,这些服务器被称为Broker 。当然同一台服务器上的不同端口的Kafka服务进程也可以称为一个Broker。

Topic

Topic是对存储在一个Kafka Broker的日志数据的一个虚拟分组。一个Broker按分区和规定的顺序来存储日志数据。例如,按时间顺序一条一条的追加日志,并创建日志文件。
每条发布到Kafka集群的消息都有一个类别。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上,但用户只需指定消息的Topic即可,生产或消费数据而不必关心数据存于何处)

Partition

Parition是物理上的概念,每个Topic包含一个或多个Partition,每个分区对应一个文件夹来保存消息,不同分区可以把数据保存到不同的服务器上。
Topic通过分区,可以提高读/写的性能和弹性。你可以把一个Topic(作为Partition)布置在多个服务器而非一台机器上来提高性能。Partition是磁盘上的日志文件,这些文件只能顺序写入。Kafka保证Partition中的消息排序。
日志的结束偏移量(log end offset)是最后一条消息写入日志文件的偏移量。
高水印偏移(high watermark offset)是最后一条成功复制到所有日志副本的消息的偏移量。
注意:消费者只能读取高水印偏移量以防止读取未复制的消息。

Messages

消息是按Topic的Partition保存在Broker上的数据。消息在传输过程中可以被批量压缩,这样可以减少网络开销,大大提高传输效率。

Producers

负责发布消息到Kafka broker 。生产者支持消息的压缩。生产者发送消息时,支持同步(返回确认消息ack)和异步的方式。

Consumer

消息消费者,向Kafka broker读取消息的客户端。
多个消费者想使用offset从多个Topics中读取消息。不像其他的消息系统,Kafka消费者通过Offset从Topics中获取消息。

Consumer Group

每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
一个Consumer Group是一个Kafka Consumer集,这些Consumer共享一个组标识符:identifier#group_id
Topic中的某一个Partitions仅分配给Consumer Group(消费者组)中的一个成员。

Kafka的部署模式

单节点单Broker(单机)

这里写图片描述

单节点多Broker(单机)

这里写图片描述

多节点多Broker(集群)

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值