🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 什么是kafka? kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。 ## kakfa特点和与其他消息队列的区别 分布式: `多分区 多副本 多订阅者 基于Zookeeper调度 ` 高性能 `高吞吐量 低延迟 高并发 时间复杂度为O(1) ` 持久性与扩展性 ` 数据可持久化 容错性 支持在线水平扩展 消息自动平衡 ` (1).Kafka 持久化日志,这些日志可以被重复读取和无限期保留 (2).Kafka 是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过复制数据提升容错能力和高可用性 (3).Kafka 支持实时的流式处理 ## 基本概念 * producer `生产者` * consumer `消费者` * consumer group `` * broker `服务器级别的kafka节点` * topic `消息的类别` * partition: `每一个topic被切分为多个partition, 消费者数目要小于或等于partition的数目 broker group中的每一个borker保存topic的一个或多个partitions ` * replication `副本 ` ![](https://img.kancloud.cn/27/ae/27aec7dcb9f32076771cd8e43e7f1775_460x135.png) ![](https://img.kancloud.cn/cc/dd/ccdd40e5876a07b8090d49067554d24c_460x250.png) * replication Leader: * replicaManager: ## 基本机构 ![](https://img.kancloud.cn/00/89/0089d6ba69057156fcfeaa740e011478_481x203.png) ![](https://img.kancloud.cn/a9/7c/a97cd0d13d9bbc7a5f3508825ed86b74_494x234.png) ## 消息结构 ![](https://img.kancloud.cn/29/37/293701f704cadbf2a43009a38da28e6c_543x55.png) ## 应用场景 消息队列 行为跟踪 元信息监控 日志收集 流处理 事件源 持久性日志 # 生产 # 消费 # 有用文献 [https://www.jianshu.com/p/d3e963ff8b70](https://www.jianshu.com/p/d3e963ff8b70)