
# Kafka应用开发简介
#### Kafka简介
Kafka是一个分布式的消息发布-订阅系统。它采用独特的设计提供了类似JMS的特性，主要用于处理活跃的流式数据。
Kafka有很多适用的场景：消息队列、行为跟踪、运维数据监控、日志收集、流处理、事件溯源、持久化日志等。
Kafka有如下几个特点：
- 高吞吐量
- 消息持久化到磁盘
- 分布式系统易扩展
- 容错性好
- 支持online和offline场景
 
#### 接口类型简介
Kafka提供的API主要可分Producer API和Consumer API两大类，均提供有Java API，使用的具体接口说明请参考[Kafka Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130032.html)。
#### 常用概念
- **Topic**
  Kafka维护的同一类的消息称为一个Topic。
  
- **Partition**
  每一个Topic可以被分为多个Partition，每个Partition对应一个可持续追加的、有序不可变的log文件。
  
- **Producer**
  将消息发往Kafka topic中的角色称为Producer。
  
- **Consumer**
  从Kafka Topic中获取消息的角色称为Consumer。
  
- **Broker**
  Kafka集群中的每一个节点服务器称为Broker。
  
- **keytab file**
  存放用户信息的密钥文件。应用程序采用此密钥文件在集群中进行API方式认证。
  
 
