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