Kafka是一个分布式的消息发布-订阅系统。它采用独特的设计提供了类似JMS的特性,主要用于处理活跃的流式数据。
Kafka有很多适用的场景:消息队列、行为跟踪、运维数据监控、日志收集、流处理、事件溯源、持久化日志等。
Kafka特点
Kafka有如下几个特点:
- 高吞吐量
- 消息持久化到磁盘
- 分布式系统易扩展
- 容错性好
- 支持online和offline场景
Kafka架构
kafka集群架构如下图所示:
共包含四个角色:
(1)Producer:发送消息的Kafka客户端
(2)Broker:kafka服务端
(3)Consumer:消费消息的Kafka客户端
(4)Zookeeper:Kafka服务元数据管理器
Kafka基本概念
主要有以下基本概念:
(1)Topic:Kafka维护的同一类的消息称为一个Topic。
(2)Partition:每一个Topic可以被分为多个Partition,每个Partition对应一个可持续追加的、有序不可变的log文件。