Kafka框架,在大数据生态当中,以作为消息总线使用闻名,尤其是实时数据流消息场景下,Kafka可以说是名气响当当。当然,这也得益于Kafka的原始开发团队背景,毕竟,Kafka源自LinkedIn。今天的大数据入门分享,我们就来讲讲Kafka基础知识。
什么是kafka
从官方文档的定义来说,Apache Kafka是一个分布式发布/订阅消息系统,能够处理高并发的大量数据,将实时消息从一个端点传到另一个端点。
事实上,Kafka非常适合处理离线和在线消息消费。Kafka消息可以持久化的保留在磁盘上,并在群集内复制以防止数据丢失。
同时,Kafka构建在ZooKeeper同步服务之上,用Raft协议保证集群的高可用,可以与Storm和Spark非常好地集成,用于实时流式数据分析。
Kafka基本架构
通常来说,Kafka架构分为四个部分,生产者(producer),zookeeper,代理(broker),消费者(consumer)。
1.生产者
负责发布消息到Kafka Broker。
2.zookper
kafka与Zookeeper级联,通过Zookeeper管理级联配置,选举Leader,并管理和协调生产者和消费者去使用broker。
3.Broker
Kafka集群包含一个或多个服务实例,这些服务实例被称为Broker。是Kafka当中具体处理数据的单元。Kafka支持Broker的水平扩展。一般Broker数据越多,集群的吞吐力就越强。
4.消费者
从Kafka Broker读取消息的客户端
kafka应用场景举例
1.日常系统解耦,将消息生产者和订阅者分离。
2.在应用前端以消息队列接收请求,当请求超过队列长度,直接不处理重定向至一个静态页面,来达到流量削峰的目的,此场景一般用于秒杀活动。
3.流失处理。从流数据处理引擎当中,如Storm,Spark Streaming等,从topic中读取数据,实时对其进行处理,并将处理后的数据写入新topic中,供用户和应用程序使用。
4.mysql数据库数据同步。后端应用可以将数据先写入kafka, 让后 让kafka异步写入mysql数据库,这样非常可以抗高峰,便于扩展。
今天的大数据学习分享,Kafka基础入门就为大家介绍到这里了。在大数据实时流处理上,Kafka受到越来越多的青睐,而大数据开发者们,自然也需要把这个框架熟练掌握下来。