这是我参与「第五届青训营」伴学笔记创作活动的第 4 天
kafka的简单介绍和使用
简介
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写,后面由Java重构,所以kafka需要运行在java虚拟机中。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。kafka最大的优势是在大数据的情况下能够对数据进行监控分析。当然业界也用kafka作为一个消息队列:
消息队列
消息队列是一种异步通信的方式,我们可以用kafka接收到生产者发过来的大量消息然后可以返回响应消息之后再发送给消费者实现异步通信,通过异步通信的特点我们可以实现定时服务
削峰
Kafka也可以实现削峰,当用户发来大量的消息时我们可以先存在kafka中然后让消费者慢慢的去消费数据能够有效起到缓冲作用,即削峰的作用,减少用户的等待时间。
kafka结构
topic和partition
kafka主要由topic(主题)组成,每个topic里面有partition用于存储信息,消费者消费的时候可以先找到topic再找需要的partition。
broker
kafka是支持分布式存储的,分布式存储的话需要许多服务器我们称之为broker,所以会有一个注册中心去寻找broker,老版本里面kafka注册中心默认是zookeeper,但在新版本用户可以自己选择注册中心。
leader和follower
每个broker都会有一个我们可以称为备份的东西也就是副本,那么我们在使用的broker中的topic称之为leader,只有leader才能够去被消费者消费,一旦leader挂了那么就会有相应的follower成为新的leader去保证数据的存储不会丢失 kafka监控 kafka可以使用efak进行监控,efak也是用Java写的所以也需要运行在jvm中