【老贝伏枥】-1.入门自学kafka

浏览: 222

  上周一位做前端的‘小鲜肉’前来应聘,刚毕业三年。他到‘果小美’工作不足月就突遇转型风波,研发部除核心之外的‘码农’全体失业了。作为一位架构师的条件反射,除前端技术之外,还细问了所做项目的整体框架,每个环节如何衔接等。小伙子回答得挺666,顿时感觉我需要随时跟上时代潮流。作为曾经的‘码农’,马上打开apache.org撸一把,才发现要学的东东太多了,对好多技术都是知其然,不知其所以然。俗话说一口吃不成BAO胖子,集中优势兵力各个击破吧。

------------如果您是新手,欢迎一起学习交流,如果您是大牛,欢迎狠狠的‘拍砖’----------------

1,Kafka的定义和功能

  Kafka生于领英,是一种分布式的,基于发布和订阅的消息系统,它以可水平扩展和高吞吐率而被广泛使用。它的设计初衷是:

  • A-以时间复杂度为O的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能;
  • B-即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输,支持Kafka Server间的消息分区及分布式消费,同时保证每个Partition内的消息顺序传输,支持离线数据处理和实时数据处理。

2,Kafka的体系架构

  •   Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker,你也可以翻译为经纪人,负责疏前导后的东东。
  •   Topic:每条发布到Kafka集群的消息被称为Topic,翻译过来就是‘主题’,比如开会前就得定个主题,没主题的会议是‘耍流氓’。物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处。也就是说消息会缓存在broker的磁盘上,至于缓存机制和用途,日后再研究。
  •   Partition:Parition是物理上的概念,每个Topic包含一个或多个Partition,即分区,跟数据库存储分区是一个概念。分区机制日后再啰嗦。
  •   Producer:负责发布消息到Kafka broker,翻译成白话文,就是负责从其它地方拉数据的组件,再说白了就是饭店门口揽客的‘小二’。
  •   Consumer:消息消费,向Kafka broker读取消息的客户端。也就是数据往哪里去,放DB, HDFS,文件都行

这么看好像不是很明白,根据IBM UMF,图文并茂才能相得益彰。

kafka standalone.jpg

Kafka就是一个中间件,负责从某些应用系统之间的消息传递,简单的说,Producers将获取的数据通过pipeline传输到Consumers。当然它需要借助ZooKeeper协调kafka分布式资源,至于什么是ZooKeeper?直观翻译就是‘动物管理员’,责任是管理kafka这类动物的资源分配,住哪个棚,吃啥等。我也挺佩服这个取名字的,Google取名为Chubby,也不知是谁把它改成这个直观易懂的名字。

下面是软件架构图,非常好理解了。

Software architect.jpg

年纪大了,一次性吃多了不容易消化,今天到此为止,明天晚上继续kafka的安装和配置。

推荐 3
本文由 贝克汉姆 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

4 个评论

志在千里!!加油,贝哥,,老了快学不动了
向大佬学习。
互相学习
谢梁总支持

要回复文章请先登录注册