了解Kafka

背景介绍

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

posted @   Gloria_Chen  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示