Kafka是一种分布式的流式数据平台,广泛应用于实时流数据处理和消息系统。它可以让处理数据的应用程序能够处理高流量的数据流,同时提供可靠性和可扩展性。
【多易教育】-Kafka文档
1.基本概念
1.1什么是kafka
Kafka 最初是由 LinkedIn 即领英公司基于 Scala 和 Java 语言开发的分布式消息发布-订阅系统,现已捐献给Apache 软件基金会。其具有高吞吐、低延迟的特性,许多大数据实时流式处理系统比如 Storm、Spark、Flink等都能很好地与之集成。
总的来讲,Kafka 通常具有 3 重角色:
- 存储系统:通常消息队列会把消息持久化到磁盘,防止消息丢失,保证消息可靠性。Kafka 的消息持久化机制和多副本机制使其能够作为通用数据存储系统来使用。
- 消息系统:Kafka 和传统的消息队列比如 RabbitMQ、RocketMQ、ActiveMQ 类似,支持流量削峰、服务解耦、异步通信等核心功能。 ==》 先进先出 ==》 只针对分区,不是全局的
- 流处理平台:Kafka 不仅能够与大多数流式计算框架完美整合,并且自身也提供了一个完整的流式处理库,即 Kafka Streaming。Kafka Streaming 提供了类似 Flink 中的窗口、聚合、变换、连接等功能。
一句话概括:Kafka 是一个分布式的基于发布/订阅模式的消息中间件,在业界主要应用于大数据实时流式计算领域,起解耦合和削峰填谷的作用。
1.2kafka的特点
- 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, 由多个consumer group 对partition进行consume操作。
- 可扩展性:kafka集群支持热扩展
- 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
- 容错性:允许集群中有节点失败(若副本数量为n,则允许n-1个节点失败)
- 高并发:支持数千个客户端同时读写
Kafka在各种应用场景中,起到的作用可以归纳为这么几个术语:削峰填谷,解耦!
在大数据流式计算领域中,kafka主要作为计算系统的前置缓存和输出结果缓存;
2.安装部署
2.1安装zookeeper集群
- 上传安装包
- 移动到指定文件夹
Plain Text |
- 解压
Plain Text |
- 修改配置文件
Plain Text |
- 创建数据目录
Plain Text |
- 在各个节点的数据存储目录中,生成一个myid文件,内容为它的id
Plain Text |
- 分发安装包
Plain Text |
- 配置环境变量
Plain Text |
- 启停集群
Plain Text |
- 一键启停脚本
(1)启动脚本
Plain Text |
(2)停止脚本
Plain Text |
2.2安装kafka集群
- 上传安装包
- 解压
Plain Text |
- 修改配