1.什么是kafka?

注:高吞吐量的分布式发布订阅消息系统。

能力:流处理。发布订阅消息。

kafka削峰是什么意思_数据

1.1没有架构时候:用户调用系统注册板块,然后板块写入db,然后成功了,再去调用短信接口,在返回。

kafka削峰是什么意思_数据_02

1.2 如果短息服务出现了故障。那么所有调用注册都会发生异常。

kafka削峰是什么意思_kafka削峰是什么意思_03

异步发送:加上消息队列,用户注册将数据写入db,同时注册系统,会将成功信息发到消息队列,发送短信服务里的消费者会不停去取队列的消息,最后直接返回给用户。减少了系统资源消耗,较少调用时间。//将消息队列应用在异步通信。

kafka削峰是什么意思_kafka_04

做到了解偶。和可用性。

kafka削峰是什么意思_数据_05

注:异步通信,削峰填谷

kafka削峰是什么意思_java_06

从数据基站,日志产生的现场。----》

对基站的数据进行实时的计算,经过消息队列缓冲(削峰)----〉

流计算平缓的从队列中得到数据----》

流计算的结果放入队列平稳的存入数据库。填谷

kafka削峰是什么意思_java_07

主流的流计算框架:

storm/spark strem/flink---》运行在服务端的流处理程序

Kafka Streaming-----〉运行在应用端的流处理程序,方便部署。

2.消息队列(Message Queue)

kafka削峰是什么意思_数据_08

kafka削峰是什么意思_数据_09

kafka削峰是什么意思_数据_10

至多一次:一条消息被一个消费者消费,消费完就被队列自动删除。

没有限制:队列一条数据可以同时被多个用户同时消费,一个用户可以实现对消息的重复消费。kafka就是这样的。

3.kafka基础架构

kafka削峰是什么意思_java_11

kafka削峰是什么意思_数据_12

图例:

kafka削峰是什么意思_java_13

实际架构

1.hash的key会均匀的覆盖分区(partition),相同的值保存在相同的分区。

2.启动好的kafka集群里每一个实例叫一个broker。

3.由图可以看到partition0在broker-0里。作为这个partition0分区的leander(主,只有主才能负责读写),而其他(broker-1/broker=2)的partition0作为follower(从)。

4 .如下图2,如果broker-0突然当机了,partition0的主就失效了,那么会重新选举如图(broker-2)上的partition0会成为分区的leande,那么broker-2,上既有partition0的leande,也有partition1的leande。

kafka削峰是什么意思_数据_14

kafka削峰是什么意思_面试_15

总结

生产者:发送消息

消费者:订阅,和读取消息。

1.什么是Record?

他是kafka聊天队列里的一则消息。

2.什么是Topic?

他是对kafka消息队列中Record的一种分类机制。

3.什么是分区,什么是副本因子?

分区:指的是我们会吧一个Topic下的数据分散的存储在几个独立的文件当中。

副本因子:指的是当前分区文件会在集群当中有多少个备份数据。

4.在kafka集群中服务节点有两类,

一类叫broker,负责响应,或者负责管理我们对应分区的数据。leande负责数据的读写。follower负责数据的备份。结合zookeeper健康监测等用法。