大数据技术之Kafka

Posted by 石福鹏 on 2021-01-29

Kafka概述

1、定义

kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue)

2、消息队列

好处:
  • 解藕: 允许你独立的扩展或者修改两边的处理过程,只要确保他们遵守同样的接口约束
  • 可恢复性: 系统的一部分组建失效时,不会影响到整个系统,即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理
  • 缓冲: 有助于控制和优化系统的速度,解决生产消息和消费消息处理速度不一致的情况
  • **灵活性& 峰值处理能力: ** 在访问量剧增的情况下,应用仍然需要发挥作用,但是这样的流量并不常见,如果以处理这类峰值的标准投入资源随时待命,无疑是大量的浪费,
  • 异步通讯: 需要的时候再去处理
消息队列的两种模式
  • 点对点模式:一对一。消费者主动拉取消息,消息接受后消除
  • 发布/订阅模式(一对多,消费者消费数据之后不会消除消息)
    生产者将消息发布到topic,,同时会有多个消息消费者消费(订阅)该消息

Kafka是基于发布订阅模式中,基于消费者主动拉取消息模式(消费者可以主动控制消费速度)

缺点:消费者这边一直有一个长轮训,如果是没有消息的情况下,是会浪费一些资源

Kafka基础架构

image-20210131140623637

1、Producer:消息生产者,就是向kafka broker发消息的客户端

2、Consumer:消息消费者,向kafka取消息的客户端