第6章 Kafka分布式发布订阅消息系统.pptx
第6章Kafka分布式发布订阅消息系统
《Spark大数据分析与实战(第2版)》
了解消息队列,能够说出消息队列的主要应用场景
熟悉Kafka的概念,能够叙述Kafka的优点
掌握Kafka的工作流程,能够叙述生产者生产消息过程和消费者消费消息过程
熟悉Kafka的基本架构,能够叙述Kafka基本架构的内容
学习目标/Target
掌握KafkaStreams,能够使用KafkaStreams实现单词计数功能
掌握Kafka的基本操作,能够使用Shell命令和ScalaAPI操作Kafka
掌握Kafka集群的搭建,能够独立完成部署Kafka集群
学习目标/Target
Kafka是一个高吞吐量的分布式发布订阅消息系统,适用于实时计算系统。通常
情况下,使用Kafka能够构建系统或应用程序之间的数据管道,用来转换或响应实时数据,使数据能够及时地进行业务计算,得出相应结果。本章将针对消息队列简介、Kafka简介、Kafka工作原理、Kafka集群的搭建以及KafkaStreams进行详细讲解。
章节概述/Summary
01消息队列简介
02Kafka简介
03Kafka工作原理
目录/Contents
搭建Kafka集群
Kafka的基本操作
KafkaStreams
04
05
06
目录/Contents
③
消息队列简介
6.1
6.1消息队列简介
学习目标
了解消息队列,能够说出消息队
列的主要应用场景。
消息队列(MessageQueue,简称MQ)是分布式系统中的
一个关键组件,用于存储消息,它的作用是将待传输的数据存放在队列中,以便生产者和消费者可以并行地处理数据,而无须等待对方的响应。通过消息队列,生产者可以将消息发送到队列,而消费者可以从队列中获取消息进行处理。这种解耦的设计模式使得系统的可伸缩性和可靠性得到提高,同时也减少了系统间的依赖性。
6.1消息队列简介
消息队列既然能够用来存
储消息,那么消息队列的主要应用场景有哪些呢?
6.1消息队列简介
6.1消息队列简介
1异步处理
2系统解耦
3流量削锋
在点对点(PointtoPoint,P2P)消息传递模式下,消息生产者将消息发送到特定队列,消
息消费者从队列中拉取或轮询以获取消息。
消费者
消费者消费者
1.点对点消息传递模式
6.1消息队列简介
生产者消息队列
在发布/订阅(Publish/Subscribe)消息传递模式下,消息生产者将消息发送到消息队列中,
所有消费者会即时收到并消费消息队列中的消息。
2.发布订阅消息传递模式
生产者消息队列
6.1消息队列简介
6.2Kafka简介
学习目标
熟悉Kafka的概念,能够叙述
Kafka的优点。
Kafka是一个基于ZooKeeper系统的分布式发布订阅消息系
统,它使用Scala和Java语言编写,该系统的设计初衷是为实时数据提供一个统一、高吞吐、低延迟的消息传递平台。在0.10版本之前,Kafka只是一个消息系统,主要用来解决异步处理、系统解耦等问题,在0.10版本之后,Kafka推出了流处理的功能,使其逐渐成为了一个流式数据平台。
6.2Kafka简介
6.2Kafka简介
Kafka在大数据领域中的应用非常普遍,它能够在离线和实时两种大数据计算场景中处理数据,
这得益于Kafka的优点。
Kafka支持Java、Scala、PHP、
Python等多种语言,这使得开发人员在不同语言环境下使用Kafka更加便捷。
Kafka会将数据备份到多台服务器中,即使Kafka集群中的某一台服务器宕机,也不会影响整个系统的功能。
Kafka是一个分布式系统,用户可以根据实际应用场景自由动态地扩展Kafka服务器。
Kafka可以每秒处理数量庞大的消息,并且具有较低的延迟。
Kafka可以将消息存储在磁盘上,以确保数据的持久性。
高吞吐,低延迟
支持多种语言
可扩展性
持久性
容错性
③
Kafka工作原理
6.3
6.3.1Kafka的基本架构
学习目标
熟悉Kafka的基本架构,能够说
出Kafka基本架构的内容。
Kafka的基本架构由Producer、Broker、Consumer和ZooKeeper构成,他们之间共同协作,
构建了高效、可靠的消息处