文章分以下几个部分:kafka基础名词、使用说明、场景、原理、架构、快的原因、其它中间件共同的优化措施、面试QA等
一、kafka简介
1.1 kafka是什么
Apache Kafka是 一个分布式流处理平台
流处理平台有以下三种特性:
- 要发布(写)和订阅(读)流事件,包括来自其他系统的数据的持续导入/导出的。
- 存储持久和可靠的事件流
- 在事件发生时或追溯性地处理事件流。
Kafka可以用于两大类别的应用:
- 构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。(相当于message queue)
- 构建实时流式应用程序,对这些流数据进行转换或者影响。(就是流处理,通过kafka stream topic和topic之间内部进行变化)
1.2 历史由来
Kafka从何而来?我们为什么要开发Kafka? Kafka到底是什么?
Kafka 最初是 LinkedIn 的一个内部基础设施系统。我们发现虽然有很多数据库和系统可以用来存储数据,但在我们的架构里,刚好缺一个可以帮助处理持续数据流的组件。在开发Kafka之前,我们实验了各种现成的解决方案,从消息系统到日志聚合系统,再到ETL工具,它们都无法满足我们的需求。
最后,我们决定从头开发一个系统。我们不想只是开发一个能够存储数据的系统&#