• kafka听课笔记(随更)


    kafka

    • 消息队列

    • 解耦、异步、流量削峰(服务器高峰期不直连)

    • 把可有可无的消息处理放在消息队列,先异步响应,再调用消息处理

    1. 解耦

      允许独立修改扩展处理过程,遵循接口约束。

    2. 可恢复性

      系统部分组件失效,消息队列降低耦合,允许在挂掉某个处理进程,在系统恢复以后继续进行。

    3. 缓冲

      控制优化数据流经过系统速度,解决生产消息和消费信息处理速度不一致情况。

    4. 灵活,峰值处理

      突发流量处理,访问量剧增,不需要投入资源,关键组件负责顶住并发量,防止超负荷。

    5. 异步

      信息优先级较低,不立刻处理,进入消息队列等待。

    • 消息队列模式

    • 点对点模式

    一对一,消费者主动pull数据,消息收到立即清除

    • 发布/订阅模式(kafka)

    一对多,消费者消费完不清除消息

    ​ 消息发布到topic中,同时多个消费者消费(订阅)该消息,发布到topic的消息被所有订阅者消费。

    • 分类:
    1. 消费者主动拉取
      • 缺点: 长轮询,多次访问队列,资源浪费。
    2. 消息队列推送
    • kafka基本架构

      发布/订阅模式(消费者主动拉取)
      • 生产者生产消息
        • producer 提交消息进入集群。
        • 通过topic主题分类进入不同的Broker,消息交给leader(kafka进程服务器)。
      • kafka集群管理消息
        • Broker 有一个leader,很多follower(备份,随时准备上位篡权leader)。
        • 分区Partition提高并发,横向扩展,提高负载能力。
      • 消费者消费消息
        • 同一个分区的数据只能被同一个消费者组的某一个消费者所消费。
        • 一个分区的一个数据只能被消费者组的一个用户消费,同组用户不能使用同一分区数据。
        • 当消费者个数>集群分部数,就会造成消费者资源浪费,当相等时,资源利用率最高
      • zookeeper 注册消息
        • 帮助kafka管理集群,存储信息,帮消费者存储位置信息,高版本存放到系统topic中。
        • 使用同一套zookeeper集群,kafka就可以保证同一套集群。
        • zookeeper缺点:影响效率,消费者拉取要经过zookeeper。

      kafka数据存放在磁盘中,而不是内存

  • 相关阅读:
    Android编译源码过程和重点
    Ubuntu 10.04 下android 源码下载与编译
    Android2.3系统的overscroll效果
    【转】打造人脉不如打造自己
    Android生命周期
    Android Bitmap和Canvas学习笔记
    Android获取手机和系统版本等信息的代码
    Android网络连接处理学习笔记
    Android风格与主题
    Android程序反编译的方法
  • 原文地址:https://www.cnblogs.com/husiyu/p/15049102.html
Copyright © 2020-2023  润新知