Kafka开发引导
kafka可以作为一个分布式的消息发布-订阅(pub/sub)系统。它采用独特的设计提供了类似JMS(Java Message Service)的特性,主要用于处理活跃的流式数据。
适用场景
- 消息队列
- 行为跟踪
- 运维数据监控
- 日志采集
- 流处理
- 事件溯源
- 持久化日志
- …
所有特点
- 高吞吐量
- 消息持久化到磁盘
- 分布式系统,易扩展
- 容错性好
- 支持离线和在线两种场景
相关概念
1.Topic
Kafka维护的同一类的消息称为一个Topic。
2.Partition
每个Topic可以被分为多个Partition,每个Partition对应一个可持续追加的,有序不可变的log文件。
3.Producer
将消息发往kafka的Topic中的角色称为Producer。
4.Comsumer
从kafka的Topic中获取消息的角色称为Producer。
5.Broker
kafka集群中的每个节点服务器称为Broker。
6.keytab file
存放用户信息的密钥文件
简单应用
假定一个用户要开发一个Producer,让其每秒向kafka集群中的某个Topic发送一条消息;另外,我们还需要实现一个Comsumer,订阅该Topic,实时消费该类消息。
思路:
- 使用Linux客户端创建一个Topic
- 开发一个Producer向该Topic生产数据
- 开发一个Comsumer消费该Topic的数据