0 课程地址
https://coding.imooc.com/lesson/380.html#mid=28227
1 课程重点
1.1 点对点消息系统和发布订阅消息系统区别
点对点消息系统:
a 点对点消息系统是把消息持久化到消息队列中,
b 消费者消费掉消息队列的数据后,数据会从消息队列中删除,
c 是顺序发送
发布订阅消息系统:
a 消息持久化到topic中,不同的topic标识信息属于不同的topic,消费者可订阅一个或多个topic
b 数据被消费后不会被删除
c 异步处理
1.2 常见术语
topic:数据所属类(类似于数据库中的表的概念)
partition:一个topic可能使用一个或者多个partition(创建kafka topic时,默认使用一个partition,另外可在kafka命令行客户端,指定partition个数)。每个partition,可能使用多个文件存储(冗余文件备份,超过一定限制后,会对文件切分)
offset:每个partition都有偏移量,每个消息都有针对partition的64字节的偏移量,指定消息在数据中的起始位置。
父本:父本是对partition的备份,作用为防止数据丢失(单机版kafka不能设置父本,父本分布在不同的机器上)。消费者不会从父本读取数据,它会从kafka leader中读取数据
kafka brokers:kafka集群包括1到多个服务器,每个服务器被称为kafka broker。broker存储topic中的数据。topic有n个partition,集群有n个broker,每个broker存储对应的partition,维护负载均衡
生产者:生产者发送消息存储到partition中,也可指定数据存储到哪个partition中,(代码设定即可)
消费者:可从broker中读取数据,消费者可消费多个topic中的数据,多个消费者构成消费者组
1.3 kafka消息流转过程
发布者将消息发布到kafka topic中,broker接收到订阅者发布的消息后,将消息追加到用于追加的partition文件中。
2 其他
2.1 kafka是什么
是分布式可划分可以对消息持久化的微服务,是发布订阅消息系统,作用类似于缓存。
2.2 kafka优点
a 可扩展性,支持集群热扩展
b 可靠性和安全性,分区机制,容错机制,父本机制,它有数据处理低延迟,保证数据的零丢失。
c 高性能,高分度差,在tb级别的数据存储下,依然能保持稳定的性能。
2.3 常见概念
生产者(发布者):消息发送者
消费者(订阅者):消息接受者