1.1 Kafka简介

关于 Kafka,网上有很多介绍,经过不断地复制、洗稿、演绎后,难免背离原意,因此,我们还是来看一下官网给出的定义:

Apache Kafka is a distributed streaming platform.

Kafka 作为流平台具有以下三种能力:

  1. 发布和订阅记录流,类似于消息队列或企业消息系统;
  2. 具有容错能力,且可以持久化的方式存储记录流;
  3. 当记录流产生时(发生时),可及时对其进行处理。

Kafka 适用于两类应用:

  1. 建立实时流数据管道,在系统或应用之间可靠地获取数据;
  2. 建立对数据流进行转换或反应的实时流应用程序。

kafka 包含四种核心 API。

  1. Producer API:基于该 API,应用程序可以将记录流发布到一个或多个 Kafka 主题(Topics);
  2. Consumer API:基于该 API,应用程序可以订阅一个或多个主题,并处理主题对应的记录流;
  3. Streams API:基于该 API,应用程序可以充当流处理器,从一个或多个主题消费输入流,并生成输出流输出一个或多个主题,从而有效地将输入流转换为输出流;
  4. Connector API:允许构建和运行将 Kafka 主题连接到现有应用程序或数据系统的可重用生产者或消费者。例如,关系数据库的连接器可能会捕获表的每一个更改。

1.2 Kafka 特点

作为一种高吞吐量的分布式发布订阅消息系统,Kafka 具有如下特性:

  • 快速持久化,可以在 O(1) 的系统开销下进行消息持久化;
  • 高吞吐,在一台普通的服务器上可以达到 10W/s 的吞吐速率;
  • 完全的分布式系统,Broker、Producer、Consumer 都原生自动支持分布式,自动实现负载均衡;
  • 支持同步和异步复制两种 HA;
  • 支持数据批量发送和拉取;
  • Zero-Copy,减少 IO 操作步骤;
  • 数据迁移、扩容对用户透明;
  • 无需停机即可扩展机器;
  • 其他特性还包括严格的消息顺序、丰富的消息拉取模型、高效订阅者水平扩展、实时的消息订阅、亿级的消息堆积能力、定期删除机制。

1.3 Kafka 架构

如上图所示,一个典型的 Kafka 体系架构包括若干 Producer(消息生产者),若干 Broker(Kafka 支持水平扩展,一般 Broker 数量越多,集群吞吐率越高),若干 Consumer(Group),以及一个 Zookeeper 集群。Kafka 通过 Zookeeper 管理集群配置,选举 Leader,以及在 Consumer Group 发生变化时进行 Rebalance。Producer 使用 Push(推)模式将消息发布到 Broker,Consumer 使用 Pull(拉)模式从 Broker 订阅并消费消息。

各个名词的解释请见下表:

Kafka入门(一)相关推荐

  1. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  2. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    为什么80%的码农都做不了架构师?>>>    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2. ...

  3. Kafka 入门和 Spring Boot 集成

    2019独角兽企业重金招聘Python工程师标准>>> Kafka 入门和 Spring Boot 集成 概述 kafka 是一个高性能的消息队列,也是一个分布式流处理平台(这里的流 ...

  4. kafka分区与分组原理_大数据技术-Kafka入门

    在大数据学习当中,主要的学习重点就是大数据技术框架,针对于大数据处理的不同环节,需要不同的技术框架来解决问题.以Kafka来说,主要就是针对于实时消息处理,在大数据平台当中的应用也很广泛.大数据学习一 ...

  5. kafka topic 一段时间不消费_全网最通俗易懂的 Kafka 入门

    众所周知,消息队列的产品有好几种,这里我选择学习Kafka的原因,无他,公司在用. 我司使用的是Kafka和自研的消息队列(Kafka和RocketMQ)改版,于是我就想学学Kafka这款消息队列啦. ...

  6. Kafka入门篇学习笔记整理

    Kafka入门篇学习笔记整理 Kafka是什么 Kafka的特性 应用场景 Kafka的安装 单机版部署 集群部署环境准备 Kafka 2.x集群部署 Kafka 3.x集群部署 监听器和内外网络 K ...

  7. Kafka : Kafka入门教程和JAVA客户端使用

    目录 目录 Kafka简介 环境介绍 术语介绍 消费模式 下载 集群安装配置 命令使用 JAVA实战 参考文献 Kafka简介 由Scala和Java编写,Kafka是一种高吞吐量的分布式发布订阅消息 ...

  8. Kafka入门教程(一)

    转自:https://blog.csdn.net/yuan_xw/article/details/51210954 1 Kafka入门教程 1.1 消息队列(Message Queue) Messag ...

  9. Kafka教程(一)Kafka入门教程

    Kafka教程(一)Kafka入门教程 1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件 ...

  10. Kafka 入门 (一)

    Kafka 入门(一) Apache Kafka起源于LinkedIn,后来于2011年成为开源Apache项目,然后于2012年成为First-class Apache项目.Kafka是用Scala ...

最新文章

  1. css 边缘闪光_css文字渐变+内发光+投影效果
  2. oracle数据库源数据路径,oracle中用什么命令查找数据文件所在路径呢?
  3. POJ3045 Cow Acrobats —— 思维证明
  4. yii2 pdo mysql 乱码_YII2.0使用PDO连接Oracle库查询结果中文显示乱码问题
  5. 人体识别_深度学习资讯 | 用于人体动作识别的26层卷积神经网络
  6. [转]百万数据查询优化技巧三四则
  7. 多线程—Lock、Condition、ReentrantLock、ReentrantReadWriteLock
  8. Android SlidingMenu开源库及其使用
  9. hadoop环境准备
  10. 本文主要介绍如何将音乐文件打包到程序中并设置为铃声
  11. python爬虫下载文件到指定文件夹_python - 图片爬虫时候遇到问题 urllib.request.urlretrieve 下载到指定文件夹不成功?...
  12. 《专家系统破解篇 六、IL代码破解--配套乱说》之 FeatherskyExpertSystem
  13. 100个Python实战项目(一)使用 Python 生成二维码
  14. 网络攻防WEB入门指南
  15. Cache tier使用文档
  16. 分享十一个学习css的小游戏,快来下载吧!
  17. LTE/LTE-Advanced 第2章 网络架构
  18. H3C 无线WLAN侧AC+FIA配置
  19. mysql设备未就绪_SQL Server 返回了错误 21(设备未就绪。) 解决方法
  20. 专业字体设计编辑Glyphs 3

热门文章

  1. 自己交社保的人怎么样才知道自己可以退休了?
  2. 江苏华西村海洋工程服务有限公司-船讯网
  3. 算法笔记之回溯法(一)——溯洄从之,道阻且长;溯游从之,宛在水中央。
  4. 边缘计算概念以及应用
  5. Modbus编程实践
  6. 三五族异质结的自发极化、压电极化及2DEG
  7. ionic3开发系列——ionic3懒加载配置
  8. 解决pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool
  9. 怎么用计算机算自己的月经周期,【月经周期表】月经周期表计算器_女人月经周期表 - 妈妈网百科...
  10. 【Raft】学习九:成员变更ConfChangeV2