深入浅出kafka①

100 阅读2分钟
  • 持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情

基础介绍

  • 谈到kafka想必大家非常的熟悉,在现今企业中使用持久化消息队列中几乎都是 plusar/kafka/mq
  • kafka在实际用途中非常的普遍
    1. 如应用于多个服务之间消息的解耦

    2. 削峰填谷,使用kafka进行限流操作,避免流量激增的时候将我们系统打垮

    3. 类似IM 实时消息消息的传递

  • 在kafka中数据单元被称为消息,因为消息属于同一个主题和分区,所以可以将消息看做DB中的一条记录
  • 在kafka中可以将不同的业务与不同的主题相呼应

image.png

  • 在生产者写入数据时候,只需要关心发送到哪个主题,与之相呼应的是 消费者配置好topic(主题) 进行消费消息就是一个完整的流程

  • 与redis副本高可用原理相同,我们在业务中使用kafka时决不允许数据丢失,所以kafka内部也引入了副本机制

  • 并且分区的水平扩展也消除了kafka集群的瓶颈问题

  • 在消费者进行消费时,每一个消息都被kafka服务器(broker)设置了偏移量,保证消息的顺序存放,并且提交到磁盘中保存

高可用

  • 在上面提到了kafka与redis副本高可用原理类似
    • 举例目前是两个broker,也就是broker1与broker2形成了kafka集群
    • 其中每个broker都有两个主题Q,主题Q中有两个分区 一个是 a 一个是b
    • 生产者和消费者分别写入和消费broker1 和 broker2的消息
    • 两个broker之间也是进行复制传递,如果有一个broker挂掉,那么消费者和生产者会连接新的broker首领