前言
例如:Kafka是后端常用的消息队列,将通过《深入理解Kafka核心设计与实践原理》进行学习,本文为第一章的学习笔记。Kafka 起初是由Linkedin 公司用Scala开发的一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现己捐献给Apache基金会。
Kafka可以扮演三大角色:
- 消息系统:Kafka 和传统的消息系统一样都具有系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。Kafka 相对于普通的消息系统,还提消息顺序性保障以及回溯消费的功能。
- 存储系统:Kafka 把消息持久化到磁盘,相比于其他基于内存存储的系统,可以有效降低数据丢失的风险。
- 流式处理平台:Kafka 不仅为每个流行的流式处理框架提供了可靠的数据来源,还提供了一个完整的流式处理类库,比如窗口、连接、变换和聚合等各类操作。
基本概念
一个典型的Kafka 体系架构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper集群。
- ZooKeeper 是Kafka 用来负责集群元数据的管理、控制器的选举等操作的
- Producer:生产者,发送消息的一方