了解Kafka

发布时间 2023-12-01 17:27:46作者: Gloria_Chen

背景介绍

Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家不同类型的公司作为多种类型的数据管道和消息系统使用。LinkIn于2010年贡献给了Apache基金会并成为顶级开源项目。

当今社会各种应用系统, 如商业,社交, 搜索,浏览等像信息工厂一样不断的生产出各种信息,那么

1.如何收集这些巨大的信息

2.如何分析它

3.如何及时的做到以上两点

以上几个挑战构成了一个业务需求的模型,即生产者(生产消息),消费者(消费消息),在在生产者和消费者之间需要一个沟通两者的桥梁-消息系统, 这种需求有也可以理解为不同系统之间如何传递消息。

Kafka 就是解决上述问题的一个框架, 它实现了生产者和消费者之间的无缝连接。

kafka的基础概念

生产者与消费者

 主题(Topic)与分区(Partition) 

Kafka中消息以主题(Topic)分类,每个主题对应一个消息队列。

 Broker和集群(Cluster)

一个kafka服务器也称为i而一个Broker,它几首生产者发送的消息并存入磁盘,broker同时服务消费者拉取分区消息的请求, 返回目前已经提交的消息。

若干个Broker组成一个集群,其中集群内某个Broker会成为集群控制器(Cluster Controller),它负责管理集群,包括分配分区到Broker, 监控Broker 故障等。

在集群内,一个分区由一个 Broker 负责,这个 Broker 也称为这个分区的 Leader;当然一个分区可以被复制到多个 Broker 上来实现冗余,这样当存在 Broker 故障时可以将其分区重新分配到其他 Broker 来负责。

多集群

随着业务发展,我们往往需要多集群,通常处于下面几个原因:

  • 基于数据的隔离;
  • 基于安全的隔离;
  • 多数据中心(容灾)

 

 

Reference:https://zhuanlan.zhihu.com/p/74063251