哈喽大家好,我是咸鱼
最近这段时间比较忙,将近一周没更新文章,再不更新我那为数不多的粉丝量就要库库往下掉了 T﹏T
刚好最近在学 Kafka,于是决定写篇跟 Kafka 相关的文章(文中有不对的地方欢迎大家指出)
考虑到有些小伙伴可能是第一次接触 Kafka ,所以先简单介绍一下什么是 Kafka 吧!
还能够把消息持久化到磁盘上,用于批量消费。除此之外由于 Kafka 被设计成分布式系统,吞吐量和可用性大大提高
Kafka 角色
Kafka 服务端(broker)
leader:对外提供读写服务
follower:不提供服务,负责向 leader 同步数据
例如某个 topic 下被划分成 n 个分区,那么这个 topic 的并发度就提高 n,同时可以支持 n 个 consumer 并行消费该 topic 中的消息
log(日志)
对于每一个 topic ,Kafka 都会维护一个分区日志
Kafka 集群
Kafka 是分布式架构,有集群(cluster)的概念
Kafka 中的一个实例被称为 broker,它接收生产者的消息并存入磁盘,消费者连接 broker 消费消息
多个 broker 组成一个 Kafka cluster,集群内某个 broker 会成为集群控制器(cluster controller),负责管理整个 Kafka 集群,包括分配分区给 broker,监控 broker 等
分区被复制成了多个副本(replica)然后均分在不同的 broker 上 ,其中一个副本 Leader,其他的是 Follower
创建副本的单位是 topic 的 分区
正常情况下,每个分区都有一个 leader 和零或多个 followers 。这样即使某个 broker 发生故障,其他 broker上的副本仍然可以继续提供服务