本书未发布

点滴总结,温故知新

未匹配的标注

面试问题模拟:

(1)kafka是什么,可以做什么?
kafka是消息队列,信息流。运用的场景有:

  • 削峰填谷:将消息暂存在队列中,慢慢的去消费处理业务请求。
  • 异步处理,解偶:项目之间的处理可以通过消息队列解偶,实现业务分层。
  • 日志流:记录日志内容。

(2)简述kafka的实现。

  • broker:kafka节点,可以看作一个连锁饭店的其中一个,kafka连锁饭店。
  • topic 主题:每个消息队列会定义一个主题,生产者产生的消息通过topic区分。可以看作是店的具体位置:kafka太奥分店。
  • partition 分区:一个topic存在多个分区,实现了分布式存储。并且多个分区会分布在多个broker实现容灾。
  • replaction 副本:每个分区会以副本的方式存储在多个broker节点,选择其中一个作为主副本。主副本负责读写,其他副本负责同步。如果副本同步太慢会暂时移除副本列表,等追上了之后会在加入副本列表。副本的同步成功标志是所有的副本都已写入数据。
  • group分组:分组名称不一样,实现了广发。分组名称一样,实现了队列消费。
  • 生产者:通过topic,group指定将消息写到broker。
  • 消费者:将生产者产生的消息进行处理。
  • pull/push:pull是消费者主动从broker节点拉取数据消费。push是broker主动向消费者推送数据。pull的优势是每个消费者自己可以记录消息的消费成功状态以及进度处理。而push则需要broker节点记录每个消息的状态,这个实现上不太可行,会占用更多存储空间。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~