1.定义
kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。
一般批处理(一个文件 或者一批文件),不管文件多大,都是可以度量
mapreduce hive sparkcore sparksql
2.消息队列
最大的优势就是解耦削峰。
3.两种模式
点对点模式(1对1消费模式)、发布订阅模式(1对n消费模式)。
发布订阅模式分为两种:
1.消费者主动拉取的(kafka模式,优点,可以根据自己的消费情况来拉去生产者生产的数据。缺点:浪费资源,时刻不停地要访问队列是否存在要拉去的数据)。
2.由队列主动推送的(比如公众号模式,弊端,不想要的信息也会强行推送进来)。
4. Kafka的简介
- 在大数据领域呢,为了满足日益增长的数据量,也有一款可以满足百万级别消息的生成和消费,分布式、持久稳定的产品——Kafka
- Kafka是分布式的发布—订阅消息系统(基于PS的一个消息队列)
- 它最初由LinkedIn(领英)公司发布,使用Scala语言编写
- Kafka是一个高吞吐量的、持久性的、分布式发布订阅消息系统
- 它主要用于处理活跃的数据(登录、浏览、点击、分享、喜欢等用户行为产生的数据
5. Kafka的特点
- 高吞吐量
- 可以满足每秒**百万级**别消息的生产和消费(生产消费 )
- 持久性
- 有一套完善的消息存储机制,确保数据的高效安全的持久化 (数据的存储)
- 分布式
- 基于分布式的扩展和容错机制;Kafka的数据都会复制到几台服务器上。当某一台故障失效时,生产者和消费者转而使用其它的机器——整体健壮性
6. Kafka的组件
一个消息队列需要哪些部分?
生产
消费
消息类别
存储等等
Topic(主题)
Kafka处理的消息的不同分类
Broker (消息代理)
Kafka集群中的一个kafka服务节点称为一个broker,主要存储消息数据,存在硬盘中。每个topic都是有分区的
Partition (物理上的分区)
一个topic在broker中被分为1个或者多个partition,分区在创建topic的时候指定
Message (消息)
消息,是通信的基本单位,每个消息都属于一个partition
7. Kafka的服务
Producer : 消息和数据的生产者,向Kafka的一个topic发布消息
Consumer :消息和数据的消费者,定于topic并处理其发布的消息
Zookeeper :协调kafka的正常运行
8生产者消费者shell操作
生产消息
kafka-console-producer.sh --topic t1 --broker-list uplooking03:9092,uploo
king04:9092,uplooking05:9092
消费消息
kafka-console-consumer.sh --zookeeper uplooking03 --topic t1
--from-beginning:从头开始消费
--blacklist:黑名单过滤(kafka-console-consumer.sh --zookeeper uplooking03 --blacklist t1,t3)
--whitelist:白名单过滤(kafka-console-consumer.sh --zookeeper uplooking03 --whitelist t2)
--topic|--blacklist|--whitelist 只能出现其中一个