zoukankan      html  css  js  c++  java
  • 深入理解Kafka-总结1

     Kafka 扮演的3个重要的角色

     
    消息中间件
    系统解耦:上游系统A成功后,需要发送消息到下游BCD;需要嵌入BCD的接口;
    解耦A系统成功后就直接把消息放到KafKa中;
    BCD系统再去Kafka中去拿
     
    削峰填谷:
    系统在某些时段,请求量暴增几十倍,可以添加服务器,平时请求很少,增加了就没有发挥真正用处,只在很少时候排上用场;
    在服务器很少的时候,将暴增的请求暂存到kafka中,服务器按照合适的速度一个个从kafka中处理请求;达到服务器稳定
    异步调用:系统A调动B3s,B调用C2s,C调用D50s;
    上面是一个调用链路A确认调用成功需要花,55s;
    实际只需要A-C即可,C调用D可以之后处理,因为业务上没有紧密的关联性,时间长,所以分开;
    B调用C后成功即返回,告诉A处理中,并且存储一个消息到kafka;
    C在从kafka中取出据,调用D成功后,告诉A成功;
     
    例子:
    叮咚买菜,下单后,付完款,将消息放到kafka,通知客户下单成功,处理中,中台系统从kafka取数据,为这个订单找一个送货小哥(C调用D),找到后,告诉客户小哥位置;
    数据存储
    是以硬盘存储的,持久化;
    一主题下多分区,保证高效率
    分区多副本,保证可靠性
     
     
    流系统的支持
     
     
     
     
    kafka中,有broker(主题topic,分区partion,副本),producer生产者,consumer消费者,consumer-group消费组,zookeeper;
     
    broker节点,代表kafka服务端,kafka集群中的一个节点,一台服务器可能对应一个节点,也可能对应多个节点(不同端口);
     
    主题topic,每个主题对应多个分区,可以设置的,一个分区有多个副本,一主多从,主副本leader副本,其他的副本follower副本,
    每个leader分区副本应该均衡的分布在 brokerlist上;
     
    主题
    生产者发送需要指定主题;
    消费者需要订阅主题
    逻辑概念;
    1个
    默认有一个consumer_offset主题用来记录各个主题的偏移量提交记录
    分区
    消息的二次分类,逻辑概念
    1个主题1或多个分区
     
    分区副本
    多副本机制,每个分区对应多个副本;
    leader副本读写,follower副本负责和leader保持一致;
    逻辑概念
    一个leader副本,其余的都是follower副本
    leader副本在的机器是leader节点,其余的是follower节点;
    AR 所有副本所在节点的broker-id
    ISR 和leader副本保持一定同步程度的,是根据一个设定时间,来判断;
    OSR,副本的最新时间,大于设定的时间,和leader副本差异过大;
    AR = ISR+OSR;
    日志文件
    物理概念
    消息会以追加的形式存到log中持久化
    一个主题A对应一个A目录,
    A目录下有日志文件,3个文件为一组,分别是时间索引文件,偏移量索引文件,log日志文件,命名则是  起始偏移量.log
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    算法竞赛入门经典习题2-3 韩信点兵
    ios入门之c语言篇——基本函数——5——素数判断
    ios入门之c语言篇——基本函数——4——数值交换函数
    144. Binary Tree Preorder Traversal
    143. Reorder List
    142. Linked List Cycle II
    139. Word Break
    138. Copy List with Random Pointer
    137. Single Number II
    135. Candy
  • 原文地址:https://www.cnblogs.com/xlblog/p/15473181.html
Copyright © 2011-2022 走看看