定义
kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理
好处
解耦(各个功能通过消息队列通知完成功能,而不用必须等待上个功能模块的通知,类似于自己排队和黄牛帮排队)
削峰(大量的处理响应需要经过消息队列,挨个挨个执行,不会使系统崩溃)
可恢复性(当处理消息的进程挂掉,在消息队列中的消息可以在系统恢复时被处理)
消息队列的两种模式(点对点(1对1),发布/订阅模式(1对多))
发布/订阅模式分为两种(消费者从队列里拉取数据(一直询问队列是否有新数据),队列主动推送给消费者(推送和处理速度不同,可能造成资源浪费和消费者挂掉))
kafka基础架构
Topic A(设置主题,存储数据到相应主题里,分类了数据)
Partition 1(设置分区,将数据存储到不同的分区中,提高了消息队列服务器的负载能力)
Leader 和 Follower(设置分区的主从关系,Leader会将数据拷贝到Follower中,避免了集群中某个分区挂了,消息丢失的情况,消费者只能使用Leader中的数据)
cosumer group(消费者组,消费者组中的不同消费者只能消费不同分区的数据,提高了消费能力)
zookeeper(存储kafka集群信息)
消费者的消费信息位置(offset)(存储在kafka集群信息,磁盘,过期时间7天)