[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)
- 简介
- html
- js
- 正则表达式
- php
- 开发环境和配置
- PHP基础
- 变量
- 数据类型
- 函数
- 常量
- 运算符
- 流程控制
- 文件
- 异常处理
- 高级
- 会话控制
- 面向对象
- 框架
- laravel
- ThinkPhp
- Yii 易
- Yaf 亚夫
- Swooole
- python
- 数据库
- 基础
- 索引
- 倒排索引
- 关联sql
- 事务
- 锁
- 优化
- 安全性
- 数据库类型
- linux
- 基础命令
- shell脚本
- 操作系统和网络
- 版本控制器
- git
- git 命令行
- 小乌龟git的使用
- git 基础命令
- svn
- svn 命令行
- 小乌龟svn的使用
- 网络
- OSI七层模型
- 网络协议
- https协议
- TCP UTP协议
- 数据结构和算法
- 算法
- 时间复杂度
- 空间复杂度
- 排序算法
- 查找算法
- 数据结构
- 系统设计和架构
- 缓存系统
- redis
- lua
- memcached
- redis与memcached的区别
- 消息队列
- kafka
- 设计模式
- 单例模式
- 高并发和大流量设计
- 流量优化
- 前端优化
- web防盗链
- CDN加速
- 独立的图片服务器
- 服务器端
- 动态语言静态化
- 并发处理
- 数据库优化
- web服务器负载均衡
- 面试
- 项目整理
- novonordisk.micego.com
- nnm.micego.com
- www.dawang.tv
- lottery.3lotto.cn
- www.gpquan.cn
- in-tao.com
- 简历
- 面试问题
- 知识点
- 真题