这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
什么是Kafka
为了解决消息间通信繁忙的问题,我们可以引入一个中间件(消息队列)。 Kafka 就是这样一个中间件,它是一个高吞吐、分布式、基于发布订阅的消息系统,利用Kafka技术可在廉价PC Server上搭建起大规模消息系统。Kafka具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性。
Kafka基础概念
前面提到,Kafka是一个消息系统,围绕这一观念来展开,它的成员可以分为 信息、生产者、消费者、平台。
信息
这点就不解释了。
生产者
产生信息的一方称为生产者。例如,植物是可以生产氧气(消息),植物就是生产者。
消费者
使用信息的一方就是消费者。例如,动物需要消耗植物生产的氧气以生存,动物就是消费者。
平台
氧气并不是生产出来之后就能直接被动物使用的,它需要一个容器其暂时容纳起来。同样的,需要使用平台对消息进行暂存,直到消费者将其取出。
除此之外,我们还要对消息进行分类,这就是主题,分完主题,还需要进行分区。
主题
Kafka中的消息以主题(topic) 为单位进行归类,生产者需要把消息发送到特定的topic中,消费者负责订阅topic进行消费,即该消费者只会消费这一个topic的信息。
分区
一个topic可以划分为多个区域,同一topic下的分区所存储的消息是不同的。分区可以实现分布在不同的服务器上,生产者将数据存储在topic下的不同分区里面。 存储方式有两种,一是生产者指定分区 二是分区器(一个算法)通过消息的键(一个标记)来安排数据的存储空间。