Kafka架构设计

Kafka是一个消息队列。被大家用在分布式消息队列或者流数据处理场景。
有几个问题,大家不知道思考过没有?
1、Kafka有哪些组件,作用分别是什么,为什么这么设计?
2、Kafka是怎么保证高性能、高并发、高可用的呢?

参考

[1] Kafka 核心技术与实战
[2] Kafka复习(一):基本概念、生产者分区策略、生产者实现原理、消费者组、位移主题、重平衡、消费者分区分配策略
[3] Kafka复习(二):控制器、Kafka副本机制、为什么Kafka不支持主从读写分离、高水位和Leader Epoch、Kafka重平衡