kafka是一款基于发布与订阅的消息系统。它一般被称为“分布式提交日志”或者“分布式流平台”。文件系统或者数据库提交日志用来提供所有事物的持久化记录,通过重建这些日志可以重建系统的状态。同样地,kafka的数据是按照一定顺序持久化保存的,可以按需读取。

  • 1、kafka拓扑结构

  • 2、Kafka的特点

  1. 同时为分布和订阅提供高吞吐量。据了解,Kafka每秒可以生产约25万条消息(50MB),每秒处理55万条消息(110MB)这里说条数,可能不上特别准确,因为消息的大小可能不一致;
  2. 可进行持久化操作,将消息持久化到到磁盘,以日志的形式存储,因此可用于批量消费,例如ETL,以及实时应用程序。 通过将数据持久化到硬盘以及replication防止数据丢失。
  3. 分布式系统,易于向外拓展。所有的Producer、broker和consumer都会有多个,均为分布式。无需停机即可拓展机器。
  4. 消息被处理的状态是在consumer端维护,而不是由server端维护,当失败时能自动平衡。
  5. 支持Online和offline的场景。
  • 3、Kafka的核心概念

名词 解释
Producer 消息的生成者
Consumer 消息的消费者
ConsumerGroup 消费者组,可以并行消费Topic中的partition的消息
Broker 缓存代理,Kafka集群中的一台或多台服务器统称broker.
Topic Kafka处理资源的消息源(feeds of messages)的不同分类
Partition Topic物理上的分组,一个topic可以分为多个partion,每个partion是一个有序的队列。partion中每条消息都会被分                                配一个 有序的Id(offset)
Message 消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息
Producers 消息和数据生成者,向Kafka的一个topic发布消息的 过程叫做producers
Consumers 消息和数据的消费者,订阅topic并处理其发布的消费过程叫做consumers
  • 3.1 Producers的概念

  1. 消息和数据生成者,向Kafka的一个topic发布消息的过程叫做producers
  2. Producer将消息发布到指定的Topic中,同时Producer也能决定将此消息归属于哪个partition;比如基于round-robin方式         或者通过其他的一些算法等;
  3. 异步发送批量发送可以很有效的提高发送效率。kafka producer的异步发送模式允许进行批量发送,先将消息缓存到内存中,然后一次请求批量发送出去。
  • 3.2  broker的概念:

  1. Broker没有副本机制,一旦broker宕机,该broker的消息将都不可用。
  2. Broker不保存订阅者的状态,由订阅者自己保存。
  3. 无状态导致消息的删除成为难题(可能删除的消息正在被订阅),Kafka采用基于时间的SLA(服务保证),消息保存一定时间(通常7天)后会删除。
  4. 消费订阅者可以rewind back到任意位置重新进行消费,当订阅者故障时,可以选择最小的offset(id)进行重新读取消费消息
  • 3.3 Message组成

  1. Message消息:是通信的基本单位,每个producer可以向一个topic发布消息。
  2. Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的,每个topic又可以分成不同的partition每个partition储存一部分
  3. partion中的每条Message包含以下三个属性:
offset     long
MessageSize   int32
data         messages的具体内容
  • 3.4  Consumers的概念

消息和数据消费者,订阅topic并处理其发布的消息的过程叫做consumers.
      在kafka中,我们可以认为一个group是一个“订阅者”,一个topic中的每个partions只会被一个“订阅者”中的一个consumer
      消费,不过一个consumer可以消费多个partitions中的消息
      注:
       Kafka的设计原理决定,对于一个topic,同一个group不能多于partition个数的consumer同时消费,否则将意味着某些                      consumer无法得到消息

Kafka的生成者、消费者、broker的基本概念相关推荐

  1. 【Kafka】 kafka集群升级导致broker.id发生变动变动引起的问题

    文章目录 1.概述 2.详情 发现问题 解决问题 1.概述 转载:http://791202.com/2020/02/01/bigdata/362/ 2.详情 最近遇到一个问题,由于kafka集群升级 ...

  2. 从现在开始学 Kafka:SpringBoot 集成 Kafka,生产者与消费者示例

    从现在开始学 Kafka:SpringBoot 集成 Kafka,生产者与消费者示例 前言 加依赖 生产者 加配置 生产者代码示例 消费者 加配置 消费者监听器示例 调用 关于 Serializer ...

  3. Kafka知识总结之消费者简单使用

    本文简述 这篇文件主要是讲kafka消费者相关使用,诸如,offset的使用,消费者的相关配置,多线程消费模式和springboot整合.至于这些里面涉及到原理等相关深入的知识会放到下一篇文件kafk ...

  4. Kafka学习记录(四)——消费者

    Kafka学习记录(四)--消费者 目录 Kafka学习记录(四)--消费者 对应课程 Kafka消费者工作流程 消费方式和流程 消费者组原理 消费者组初始化流程 消费者组详细消费流程 重要参数 ka ...

  5. 详细讲解如何使用Java连接Kafka构建生产者和消费者(带测试样例)

    1 缘起 学习消息队列的过程中,先补习了RabbitMQ相关知识, 接着又重温了Kafka相关的知识, 发现,我并没有积累Java原生操作Kafka的文章, 只使用SpringBoot集成过Kafka ...

  6. kafka分区及副本在broker的分配

    kafka分区及副本在broker的分配 @(KAFKA)[kafka, 大数据] 部分内容参考自:http://blog.csdn.net/lizhitao/article/details/4177 ...

  7. kafka中生产者和消费者的分区问题

    本文来书说下kafka中生产者和消费者的分区问题 文章目录 概述 主题的分区数设置 分区与生产者 分区与消费者 range roundrobin(轮询) 本文参考 本文小结 概述 我们知道,生产者发送 ...

  8. kafka报错:creating broker listeners from xxx unable to parse xxx:9092 to a broker endpoint

    1.美图 2.背景 kafka报错:creating broker listeners from xxx unable to parse xxx:9092 to a broker endpoint 具 ...

  9. Kafka详解(上)——消息系统分类、Kafka安装、两种启动、基本概念、两种架构、核心配置文件

    1 消息和消息系统 ​ 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象. 1-1 消息系统是什么 ​ 消息系统负责将数据从一个应用 ...

  10. kafka分区与分组原理_kafka 基本原理和概念

    Kafka系统的角色Broker :一台kafka服务器就是一个broker.一个集群由多个broker组成.一个broker可以容纳多个topic topic: 可以理解为一个MQ消息队列的名字 P ...

最新文章

  1. bash命令行常用快捷键
  2. 图解PE文件实例研究
  3. Python 输入输出
  4. Django中的shell,和数据增删查改
  5. 通过Serverless技术降低微服务应用资源成本
  6. 全国计算机等级考试题库二级C操作题100套(第66套)
  7. 2020 Jiangsu Collegiate Programming Contest
  8. [错误记录] --- clickhouse报错Decimal value is too small
  9. asp.net错误处理的三种方法
  10. c字段和属性的区别_如何将唯一属性类字段设置为不允许重复?
  11. 为什么个体户做不大?
  12. Sprig 面试中 问及 DI,IOC, AOP
  13. 深入理解Java虚拟机(五)之Class类文件的底层结构
  14. Thinkphp结合phpqrcode生成二维码海报代码
  15. 【Android开发】Android基本UI组件
  16. 移动端meta设置大全(持续收集中。。。。)
  17. Tortoise commit提交模板配置
  18. 芯力特SIT1145AQT带选择性唤醒及故障保护的低功耗 CAN FD 总线收发器,完全替代TJA1145T。
  19. 金立e3t刷android4.4,金立E3T 刷机包 百度云完美版
  20. ITSM-CMDB数据库设计-四种方案任你选

热门文章

  1. RMreport的使用技巧
  2. “00后”来了!数睿数据迎来新生代「无代码」生力军
  3. 暑假游玩五岳之中的泰山
  4. 详解prototype
  5. 蓝色心情XP主题一键安装包.exe
  6. 新视野大学英语4期末考试真题—集大内部期末机考原题—考试所有题目直接背答案—稳过
  7. 技术人员的赚钱之道-7:“穷人”与“富人”定义的新认知
  8. 解决配置双重认证后提示“未对git remote进行身份认证”问题
  9. Python in minute
  10. Vue 运行环境搭建