Kafka 背景及架构介绍目录1 、使用消息系统的优点2 、常用 Message Queue 介绍和对比3 、选择 Kafka 的原因4 、 Kafka 的架构及相关概念介绍5 、 Kafka 启动和监控6 、 Kafka 日志文件存储及生产、消费的原理7 、 Kafka 稳定性、容错性、异常情况的介绍8 、 Kafka 工具的使用9 、 Kafka 项目中的应用为何使用消息系统1 、数据持久化,数据缓冲,异步通信
保证数据不丢失,通过缓冲层来帮助任务最高效率的执行,可存储大量历史数据可以异步处理
2 、扩展性,解耦处理过程
增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可
不需要改变代码、不需要调节参数
3 、灵活性,峰值处理能力
不会因为突发的超负荷的请求而完全崩溃
4 、可恢复性
系统的一部分组件失效时,不会影响到整个系统
加入队列中的消息仍然可以在系统恢复后被处理
5 、时序性
在大多使用场景下,数据处理的顺序都很重要
常用 Message Queue 对比•对比RabbitMQRocketMQkafka模式发布订阅发布订阅发布订阅持久化支持(内存 / 硬盘)支持(磁盘)支持(磁盘)事务支持支持不支持集群支持支持支持负载均衡支持支持支持堆积能力磁盘容量 + 内存磁盘容量磁盘容量(水平扩展,不同 broker 可以存储在不同磁盘上)消息丢失不会丢失理论上不会丢失理论上不会丢失消息重复可以使用消息确认等机制控制-理论上会有重复消息失败重试机制消费失败支持定时重试消费失败支持定时重试,每次重试间隔时间顺延Kafka 消费失败不支持重试 客户端支持语言Java 、 C 、 C++ 、 Python 、 PHP 、Perl 等Java 、 C++ (不成熟)Java 、 C++ 等最大吞吐量时 cpu 、内存占用cpu 占用非常高,内存占用根据配置(配置的太低对性