1、什么是kafka
(1)Kafka是一种高吞吐量的、分布式、快速、可扩展的、分区和可复制,基于发布/订阅模式的消息系统,是Apache项目的一个顶级项目。使用Scala语言编写,目前已被广泛应用于各行业各类型的数据管道和消息系统中。
(2)Kafka可以同时满足在线实时处理和批量离线处理;在大数据生态系统中,通常将Kafka作为数据交换枢纽,不同类型的系统(关系数据库、NoSQL数据库、流处理系统、批处理系统等)可以统一接入到Kafka,实现和Hadoop各个组件之间的不同类型数据的实时高效交换。
(3)kafka特性:1、通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能;2、高吞吐量。即使是非常普通的硬件kafka也可以支持每秒数十万的消息;3、支持通过kafka服务器和消费机集群来分区消息;4、支持Hadoop并行数据加载;
2、kafka基本组件
(1)producer
生产者,是broker中发送消息的一方;
(2)broker
kafka集群包括多台服务器,一台kafka服务器就是一个broker,一个集群有多个broker组成,一个broker可以包含多个topic,broker承担着中间缓存和分发的作用,将producer发送的消息分发到consumer中;
(3)topic
kafka消息是通过topic进行分类,一个topic认为一类消息,每