开发者学堂课程【大数据Spark2020版(知识精讲与实战演练)第五阶段:Structured_Source_Kafka_回顾】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/692/detail/12151
Structured_Source_Kafka_回顾
内容介绍:
一、从 Kafka 中读取数据
二、Kafka 的场景和结构
三、总结
一、从 Kafka 中读取数据
1.目标和步骤
(1)目标
通过本章节的学习,便可以理解流式系统和队列间的关系,同时能够编写代码从 Kafka 以流的方式读取数据
(2)步骤
① Kafka回顾
② Structured Streaming 整合 Kafka
③读取 JSON 格式的内容
④读取多个 Topic 的数据
二、Kafka 的场景和结构
1.目标和步骤
(1)目标
通过这一个小节的学习,理解 Kfaka 在整个系统中的作用,日后工作的话,也必须要先站在更高层去理解系统的组成,才能完成功能和代码。
(2)步骤
① Kafka 的应用场景
② Kafka 的特点
③ Topic 和 Partitions
2.Kafka 是一个 Pub / Sub 系统
Pub / Sub 是 Publisher / Subscriber 的简写,中文称作为发布订阅系统
发布者将消息发给 Kafka ,订阅者读取 Kafka 的消息。
发布订阅系统可以有多个 Publisher 对应一个 Subscriber ,例如多个系统都会产生日志,通过这样的方式,一个日志处理器可以简单的获取所有系统产生的日志
发布订阅系统也可以一个 Publisher 对应多个 Subscriber ,这样就类似于广播了,例如通过这样的方式可以非常轻易的将一个订单的请求分发给所有感兴趣的系统,减少耦合性
当然,在大数据系统中,这样的消息系统往往可以作为整个数据平台
的入口,左边对接业务系统各个模块,右边对接数据系统各个计算工具
3.Kafka 的特点
Kafka 有一个非常重要的应用场景就是对接业务系统和数据系统,作为一个数据管道,其需要流通的数据量惊人,所以 Kafka 如果要满足这种场景的话,就一定具有以下两个特点
(1)高吞吐量
(2)高可靠性
4.Topic 和 Partitions
消息和事件经常是不同类型的,例如用户注册是一种消息,订单创建也是一种消息
Kafka 中使用 Topic 来组织不同类型的消息
Kafka 中的 Topic 要承受非常大的吞吐量,所以 Topic 应该是可以分片的,应该是分布式的
三、总结
1.Kafka 的应用场景
①一般的系统中,业务系统会不止一个,数据系统也会比较复杂
②为了减少业务系统和数据系统之间的耦合,要将其分开,使用一个中间件来流转数据
③Kafka 因为其吞吐量超高,所以适用于这种场景
2.Kafka 如何保证高吞吐量
①因为消息会有很多种类,Kafka 中可以创建多个队列,每一个队列就是一个 Topic , 可以理解为是一个主题,存放相关的消息
②因为 Topic 直接存放消息,所以 Topic 必须要能够承受非常大的通量,所以 Topic 是分布式的,是可以分片的,使用分布式的并行处理能力来解决高通量的问题