消息:消息相当于数据库中的记录,kafka中的的消息是二进制消息流,所以kafka中的消息没有特别的格式或者含义
批次:消息可以分批次的被发送,这样可以提高效率,单条消息穿梭于网络间,会导致大量的网络开销,批次越大单位时间内处理的消息就越多,单个消息的传输时间就越长,批次消息会被压缩 ,可以提升效率,但是需要更多的 cpu计算
主题、分区:相当于数据库中的表,每个主题会有若干个分区,在kafka中一个分区就是一个linux下的分区日志,消息是以追加的形式加入到分区日志中,主题消息的消息的顺序行无法等到保证,但是分区中的 顺序可以得到保证。
broker:kafka服务器,用来保存一些原数据信息,比如分区信息,消息的偏移量等等
消息键、分区器:生产者一般是将消息均匀的发往每个分区,消息键可以提帮助我们将消息存入特定的分区。分区器帮助我们选择特定的分区。
生产者:生产消息的一方
消费者:读取消息的一方,订阅有个或者多个topic,按照分区中 消息的顺序来读取消息,消费者通过分区中消息的偏移量来判断那些消息已经被消费过。
偏移量:消息的偏移量,生产者生产消息时会将消息的偏移量附带,分区中每个消息的偏移量都是唯一的,消费者会将最后消费的消息的偏移量存入zk,或者kafka。
消费者群组:多个消费者组成一个消费者群组,群组中的消费者消费不同分区中的消息。
kafka特性:
(1)多producer
(2)多consumer
(3)基于磁盘的数据存储:保证数据的完整消费
(4)伸缩性:可以灵活配置broekr
(5)高性能