zoukankan      html  css  js  c++  java
  • 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数据存放在磁盘中,而不是内存

  • 相关阅读:
    (转载)C++ string中find() ,rfind() 等函数 用法总结及示例
    UVA 230 Borrowers (STL 行读入的处理 重载小于号)
    UVA 12100 打印队列(STL deque)
    uva 12096 The SetStack Computer(STL set的各种库函数 交集 并集 插入迭代器)
    uva 1592 Database (STL)
    HDU 1087 Super Jumping! Jumping! Jumping!
    hdu 1176 免费馅饼
    HDU 1003 Max Sum
    转战HDU
    hust 1227 Join Together
  • 原文地址:https://www.cnblogs.com/husiyu/p/15049102.html
Copyright © 2011-2022 走看看