Kafka复习

消息中间件的作用:

  • 异步处理:
    • 与并行相比,虽然减少了时间,但是还是得等待其他线程执行完,但是消息中间件对于简单的业务处理,还要引入一个中间件也比较复杂
    • 如果我投递了简历之后需要发送成功邮件以及短信,就可以交给消息中间件
    • 就像数据库、redis数据一致性,需要用到延迟双删,也可以异步处理
  • 应用解耦:
    • 比如用户下单之后,需要去库存系统缩减库存,这时候呢如果通过feign远程调用,这样耦合度就比较高,通过消息中间件去确保最终一致性
  • 流量削峰:
    • 像12306在抢票的时候,并发量极高,就将这些请求放在消息队列中一个个的去处理
  • 日志处理:
    • 将日志放在消息队列中,解决大日志传输的问题。
  • 流处理

Kafka的优点:

  • 天然支持分布式
  • 持久化数据(默认保存七天)
  • 流式处理动态的数据
  • 高性能、高可用、高伸缩性(集群目标)

基本概念:

  • 消息和批次:
    • 消息:由字节数组组成
    • 为了提高效率,会将消息以批次(生产者源码里的缓冲池)的形式写入
    • 序列化和反序列化(JSON或者XML)
  • 主题和分区:
    • topic:以主题的形式进行分类(类似于数据库中的表),一个主题可以跨越多个服务器,高性能之一,多台服务器磁盘读写比单台更高
    • partition:一个topic对应多个分区,消息顺序追加
  • 生产者:
    • 消息默认情况下均衡分布在所有分区上,如果需要指定分区,可以自己写分区器或者根据key
  • 消费者:
    • 消费者订阅主题,可以订阅不同的主题,可以负责不同分区,但是一个分区只能对应一个消费者,按照消息顺序读写
    • 分区的偏移量都会保存在kafka上
  • Broker和集群:
    • 主要工作接收消息,设置偏移量,磁盘保存
    • 拉模式,响应请求
    • Brocker会组成一个集群,每个集群中会选出一个集群控制器( Kafka使用 Zookeeper的临时节点来选举控制器,并在节点加入集群或退出集群时通知控制器)。包括进行分区,监控brocker
    • 集群内布通过管道技术进行高效的复制
    • 消息持久化:要么时间7天要么大小1G
    • 常见配置:
      • brocker id 集群不能重复
      • listeners:监听列表
      • zookeeper connect:集群的地址
      • num partitions:分区数量
      • 日志时间
      • 分区大小
      • 日志片段大小
      • 能接收的最大字节数
  • 硬件对于性能的影响:
    • 磁盘吞吐量影响生产者,写的快性能就好
    • 内存影响消费者,消费者数据一般从内存之中读取,比磁盘上读取快得多

相关推荐

  1. kafka

    2024-04-14 07:02:03       59 阅读
  2. <span style='color:red;'>kafka</span>

    kafka

    2024-04-14 07:02:03      51 阅读
  3. Kafka

    2024-04-14 07:02:03       67 阅读
  4. Kafka

    2024-04-14 07:02:03       51 阅读
  5. <span style='color:red;'>KAFKA</span>

    KAFKA

    2024-04-14 07:02:03      71 阅读
  6. <span style='color:red;'>Kafka</span>

    Kafka

    2024-04-14 07:02:03      53 阅读
  7. <span style='color:red;'>Kafka</span>

    Kafka

    2024-04-14 07:02:03      56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 07:02:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 07:02:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 07:02:03       87 阅读
  4. Python语言-面向对象

    2024-04-14 07:02:03       96 阅读

热门阅读

  1. 删除url的search参数,避免页面刷新

    2024-04-14 07:02:03       37 阅读
  2. 天空盒1-天空盒的实现原理

    2024-04-14 07:02:03       34 阅读
  3. Pytorch安装小坑(Windows+cu111)

    2024-04-14 07:02:03       38 阅读
  4. 微信小程序相关

    2024-04-14 07:02:03       33 阅读
  5. KDTree和Octree的区别

    2024-04-14 07:02:03       38 阅读
  6. nuxt.config.js配置

    2024-04-14 07:02:03       36 阅读