课堂回顾:
- kafka概念介绍:
- 吞吐量:单位时间内处理的数据量。讲求的是单位时间内处理的数据量要大
- Zookeeper是什么:
- 概念说明:zk是分布式环境下的第三方协同服务,帮助分布式系统,比如存储、计算、调度等均需要协同服务
- 特点特征:简单、易使用、高效、稳定
- 应用场景:核心是要解决一致性问题
- 分布式环境下的命名一致性问题
- 分布式服务环境下的高可用性问题
- HA问题:high available
- 核心还是一个选举策略问题
- 代码实现
- Zk其实内部就是一个多叉树结构
- 面向zookeeper编程即可
- 实际当中主要是Hadoop生态圈组件直接使用zk,我们在业务开发当中并没有直接面向zk编程的业务应用
- 消息系统:
- messageQueue,消息系统,也成消息队列
- 相关特性
- 稳定性高
- 高吞吐量,低延迟
- 高并发
- 容错性好
- 良好的Hadoop并行计算
- 衡量算法优劣的因子
- 时间复杂度:运算过程当中涉及到计算最小操作单元次数的量级
- O(:常量级
- O(n)
- O(logn)
- O(n*n)
- 空间复杂度:运算过程中涉及到计算最小存储单元个数的量级
- 时间复杂度:运算过程当中涉及到计算最小操作单元次数的量级
- 应用场景
- 核心术语
- Message:消息,也称消息数据
- Broker:kafka集群包含一个或多个服务器,这种服务器成为broker,即为中间人
- Topic:相当于给一类消息管道起个名字
- Partition:是物理上的概念,每个topic包含一个或多个partition,每个partition都有三个副本,可以自定义修改
- Segment:partition物理上由多个segment组成,每个segment存这message信息
- Produce:负责发布消息到kafka broker
- Consumer:消息消费者,向kafka broker读取消息的客户端
- 发布publish与订阅subscribe:发布消息即为生产消息
- Consumer group:每个consumer属于一个特定的consumer group
- Offset:偏移量
- 消费系统的一般性语义
- 最多一次:消息可能丢失,但不会重复投递
- 最少一次:消息不会丢失,但可能会重复投递
- 严格一次:消息不丢失、不重复,有且只会被分发一次
- Kafka工作流程
- Kafka五大核心API
- Producer API:允许应用程序发布流记录到一个或多个kafka主题中
- Consumer API:允许应用程序订阅一个或多个主题,并处理针对这些主题的数据流
- Connector API:实现在kafka和其他系统之间复制数据的功能
- Streams API:允许程序作为一个数据流处理应用,将一个或多个topic中输入的数据进行消费,并生产数据流到一个或多个topics中
- Admin API:支持管理和检查topic,broker,acls和其他kafka对象
- 数据处理当中的常见属于说明
- Source:数据源,即获取数据的地方
- Transformation:数据的转换处理
- Sink:数据下沉,即存储到的位置