程序员

Kafka-概述

2023-01-15  本文已影响0人  我可能是个假开发

一、Kafka是什么

1.定义

Apache Kafka 是一款开源的消息引擎系统。
消息引擎系统是一组规范。企业利用这组规范在不同系统之间传递语义准确的消息,实现松耦合的异步式数据传递。

二、消息队列的使用场景

传统消息队列的应用场景包括 缓存/削峰、解耦、异步通信

1.缓存/削峰

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

2.解耦

允许独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

3.异步通信

允许用户把一个消息放入队列,但并不立即处理它,然后在需要的时候再去处理它们。

三、Kafka的使用场景

四、消息队列的模式

1.点对点模型

也叫消息队列模型。消费者主动拉取数据,消息收到后清除消息。


点对点模型.png

系统 A 发送的消息只能被系统 B 接收,其他任何系统都不能读取 A 发送的消息。日常生活的例子比如电话客服就属于这种模型:同一个客户呼入电话只能被一位客服人员处理,第二个客服人员不能为该客户服务。

2.发布 / 订阅模型

发布/订阅模型.png

与上面不同的是,它有一个主题(Topic)的概念,你可以理解成逻辑语义相近的消息容器。该模型也有发送方和接收方,只不过提法不同。发送方也称为发布者(Publisher),接收方称为订阅者(Subscriber)。和点对点模型不同的是,这个模型可能存在多个发布者向相同的主题发送消息,而订阅者也可能存在多个,它们都能接收到相同主题的消息。生活中的报纸订阅就是一种典型的发布 / 订阅模型。

五、Kafka基础架构

image.png

1.为方便扩展,并提高吞吐量,一个topic分为多个partition
2.配合分区的设计,提出消费者组的概念,组内每个消费者并行消费
3.为提高可用性,为每个partition增加若干副本,类似NameNode HA
4.ZK中记录谁是leader,Kafka2.8.0以后也可以配置不采用ZK

极客《Kafka 核心技术与实战》学习笔记Day1 - http://gk.link/a/11UOW

上一篇下一篇

猜你喜欢

热点阅读