一. 什么是Kafka

面向数据流的生产,转换,存储,消费的整体流处理平台

二、Kafka三大特性

1、发布和订阅数据的流,类似于消息队列,消息系统

2.、数据流存储平台

3、当数据产生的时候,对数据处理

三、Kafka应用于

1. 构建数据流管道,应用直接有比较强的应用关系

2、构建实时数据处理应用,能够转换或者响应数据流

四 Kafka基本概念

Producer:消息和数据的生产者,向Kafka的一个topic发布消息的进程/代码/服务

Consumer: 消息和数据的消费者,订阅数据(Topic)并且处理发布的消息的进程/代码/服务

Consumer Group:逻辑概念,对于同一个topic,会广播给不同的group,一个group中,只有一个consumer可以消费该消息。

Broker:物理概念,Kafka集群中的每个Kafka节点

Topic:逻辑概念,Kafka消息的类别,对数据进行区分、隔离

Partition:物理概念,Kafka下数据储存的基本单元。一个Topic数据,会被分散存储到多个Partition,每一个Partition是有序的。

  1)每一个Topic被切分为多个Partitions

   2)消费者数目少于或等于Partition的数目

  3)Broker Group中的每一个Broker保存Topic的一个或多个Partitions

  4)Consumer Group中的仅有一个Consumer读取Topic的一个或者多个Partitions,并且是唯一的Consumer

Replication:同一个Partition可能会有多个Replica,多个Replica之间数据是一样的

  1)当集群中的有Broker挂掉的情况,系统可以主动的使用Replicas提供服务

  2)系统默认设置每一个Topic的replication系数为1,可以在创建Topic时单独设置

  Replication特点

  1)Replication的基本单位是Topic的Partition

  2)所有的读和写多从Leader进,Followers只是做为备份

  3)Follower必须能够及时复制Leader的数据

  4) 增加容错性与可扩展性

Replication Leader:一个Partition的多个Replica上,需要一个Leader负责该Partition上与Producer和Consumer交互

ReplicaManager:负责管理当前broker所有分区和副本的信息,处理KafkaController发起的一些请求,副本状态的切换、添加/读取消息等。

五、Kafka基本结构

Producer Api

Consumer Api

Streams Api

Connectors Api

六、Kafka消息结构

七、Kafak特点

分布式

  多分区

  多副本

   多订阅者

   基于Zookeeper调度

高性能

  高吞吐量

  低延迟

  高并发

  时间复杂度为O(1)

持久性和可扩展性

  数据可持久化

  容错性

  支持在线水平扩展

  消息自动平衡

Kafka 基本概念学习笔记的更多相关文章

  1. 操作系统概念学习笔记 10 CPU调度

    操作系统概念学习笔记 10 CPU调度 多道程序操作系统的基础.通过在进程之间切换CPU.操作系统能够提高计算机的吞吐率. 对于单处理器系统.每次仅仅同意一个进程执行:不论什么其它进程必须等待,直到C ...

  2. SpringCloud基础概念学习笔记(Eureka、Ribbon、Feign、Zuul)

    SpringCloud基础概念学习笔记(Eureka.Ribbon.Feign.Zuul) SpringCloud入门 参考: https://springcloud.cc/spring-cloud- ...

  3. kafka实战读书笔记

    1.katka_2.12-l.0.0.tgz 上面两个文件中的 2.11 /2.12 分别表示编译 Kafka 的 Scala 语言版本,后面的 1.0 .0 是 Kafka的版本 . 2.kafka ...

  4. kafka常用命令笔记

    0.查看有哪些主题: ./kafka-topics.sh --list --zookeeper 192.168.0.201:12181 1.查看topic的详细信息 ./kafka-topics.sh ...

  5. KAFKA官方教程笔记-introduction

    为什么80%的码农都做不了架构师?>>>   介绍 apache kafka是一个分布式流式处理平台,一个流式平台该有的三个关键能力: 发布.订阅流式数据.从这个角度讲类似消息队列或 ...

  6. http实现方式概念学习笔记

    web概念:web1.0:静态页面为主,门户新闻.企业宣传web2.0:动态页面为主,用户参与,bbs,blog,sns,微博            web3.0:web2.0基础上,智能化,人性化, ...

  7. java封装的概念学习笔记

      继承.封装.多态.抽象是面向对象编程的四大基本概念,其中封装装为重要,因为从我们学习JAVA开始,就基本上接触了封装,因为JAVA中的所有程序都是写在类中的,类也能当做一种封装. 在面向对象中封装 ...

  8. 操作系统概念学习笔记三 cpu调度算法

    一 基本概念 1 队列中的记录通常是进程的进程控制块. 2 CPU调度决策可在如下四种环境下发生 a 当一个进程从运行状态切换到等待状态 例如,I/O请求或调用wait以等待一个子进程的终止 b 党一 ...

  9. MEF基础概念学习笔记

    MEF,是微软.net框架下的一个框架类库.可以使你的程序低耦合的加载扩展.在开发插件,或者开发一些需要灵活扩展的功能的时候经常用到.例如微软给出的计算器的例子.当你开发计算器的时候,初始功能只提供了 ...

随机推荐

  1. 位(bit)、字节(Byte)、MB(兆位)之间的换算关系

    B是Byte的缩写,意思是字节:b是bit的缩写,意思是比特位:Kb是千比特位,KB是千字节:MB意思是兆字节: 换算关系: 1MB=1024KB=1024B*1024=1048576B: 8bit= ...

  2. ubantu安装python3虚拟环境

    Ubuntu安装python3虚拟环境 安装虚拟环境 步骤: 打开Linux终端(快捷键Ctrl+Alt+T),输入命令: sudo apt install python-virtualenv sud ...

  3. 自动化测试-22.RobotFrameWork鼠标和键盘的操作针对出现window界面的处理

    键盘和鼠标的操作:使用AutoItLibrary模块 1.安装pywin32 http://sourceforge.net/projects/pywin32/files/pywin32/Build%2 ...

  4. Oracle对象(视图、序列、索引)

    数据库对象:表.视图.序列.索引.同义词创建视图:create view 名 as 子查询描述结构:describe 对象名修改视图:create or replace view 名 as 子查询 视 ...

  5. lintcode 刷题 by python 部分链表题总结(2)

    本篇博客对最近做的链表的算法题做个简单的小结,主要描述题目和提供解题思路,具体代码见我的 github:https://github.com/MUSK1881/lintcode-by-python 3 ...

  6. win7快捷方式图标修复

    test.bat ///////////////////////////////////////////////////////////////////////// rem 关闭Windows外壳程序 ...

  7. dubbo AdaptiveExtension

    AdaptiveExtension 自适应Extension,作者其实在使用Extension方和Extension之间插入AdaptiveExtension用来自适应,也可以说是适配. 所以,我们发 ...

  8. qt 内置图标使用

    QToolButton *button = new QToolButton(this); button->resize(100,30); button->setToolButtonStyl ...

  9. P2157 [SDOI2009]学校食堂 (dp+状态压缩)

    题目链接:传送门 题目: 题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人 ...

  10. Codeforces 978E:Bus Video System

    题目链接:http://codeforces.com/problemset/problem/978/E 题意 一辆公交车,在每站会上一些人或下一些人,车的最大容量为w,问初始车上可能有的乘客的情况数. ...