凌云时刻 · 技术

导读:Apache Kafka正是上节描述的MQ系统,但不仅是MQ系统,它往往也被描述为分布式提交日志系统或者分布式流式处理系统。从这节开始,我们将逐步了解Kafka的核心概念。

作者 | 计缘

来源 | 凌云时刻(微信号:linuxpk)

Topic

在Kafka中,Topic可以理解为表示一组特殊的数据流。可以将它想象为关系性数据库中的表。

  • 数据库中的表存储着同一类的数据。那么Topic同样表示同一类的数据流。

  • 数据库中的表可以根据需求创建多张。那么Topic同样可以根据需求创建多个,但有一点区别是,Topic没有像数据库表中约束(Constraints)的概念。

  • 数据库中表的名称是不能重复的,表名能唯一确定一张表。那么Topic同样是以名称确定唯一的,Topic名称不能重复。

Broker

一个Kafka的Server就称之为Broker,可以每台物理服务器上只部署一个Broker,可以将多个Broker部署在一台物理服务器上。本身Broker这个单词的意思是中间代理的意思。Broker负责接收Producer发送的消息、对消息进行持久化、让Consumer获取消息。

关于Broker,我们需要注意以下几点概念:

  • Kafka集群就是由多个Broker组成的。

  • 每个Broker都有一个整数类型的唯一标识ID。

  • 当我们连接到任意一个Broker后,我们就已经连接到了整个Kafka集群。我们连接的第一个Broker称之为Bootstrap Broker。

  • 通常,最小的Kafka集群最好有三个Broker。

我们来看看Broker、Topic、Partition(后续章节会介绍)之间的关系。假设有Broker 101、Broker 102、Broker 103三个Broker。Topic-A、Topic-B两个Topic,这两个Topic分别有三个Partition和两个Partition。他们的关系如下图所示:

可以看到,Topic的Partition在Kafka集群中是随机分配给Broker的。也就是说Topic-A的数据会分别被持久化在这三个Broker中,而Topic-B的数据只会持久化在Broker 101和Broker 102中。如果Topic-A再加一个Partition 4,则它会随机被分配给任意一个Broker。

总结

这一章节介绍了Topic和Broker的概念,Topic承载了Message的输入输出,相当于Kafka对外的窗户。Broker则负责Kafka内部核心的功能,比如Message持久化、如何保证Kafka高可用性等等。

在后续的章节里,会详细介绍它们的各种配置和用法。希望能给小伙伴们带来帮助。

END

往期精彩文章回顾

Kafka从上手到实践 - 庖丁解牛:Partition

Kafka从上手到实践 - 初步认知:MQ系统

进阶之路:深入解读 Java 堆外内存

干货:一文看懂Apache Ranger

吴翰清:有变革的需求,才有技术的诞生

云原生时代,消息中间件的演进路线

如何提升微服务的幸福感

OceanBase 连破纪录的背后,是技术人的砥砺前行

长按扫描二维码关注凌云时刻

每日收获前沿技术与科技洞见

Kafka从上手到实践 - 庖丁解牛:Topic Broker | 凌云时刻相关推荐

  1. 《深入理解Kafka:核心设计与实践原理》笔误及改进记录

    2019年2月下旬笔者的有一本新书--<深入理解Kafka:核心设计与实践原理>上架,延续上一本<RabbitMQ实战指南>的惯例,本篇博文用来记录现在发现的一些笔误,一是给购 ...

  2. Kafka复习计划 - 客户端实践及原理(消费者组/位移/请求处理过程)

    Kafka复习计划 - 客户端实践及原理(消费者组/位移/请求处理过程) 前言 一. 消费组 1.1 Rebalance 重平衡 1.2 Coordinator 协调者 1.3 如何尽量避免消费者组重 ...

  3. 深入理解Kafka核心设计与实践原理_01

    深入理解Kafka核心设计与实践原理_01 01_初识Kafka 1.1 基本概念 1.2 安装与配置 1.3 生产与消费 1.4 服务端参数配置 01_初识Kafka 1.1 基本概念 一个典型的 ...

  4. Kafka整体结构图、Consumer与topic关系、Kafka消息分发、Consumer的负载均衡、Kafka文件存储机制、Kafka partition segment等(来自学习资料)

    ##1. Kafka整体结构图 Kafka名词解释和工作方式  Producer : 消息生产者,就是向kafka broker发消息的客户端.  Consumer : 消息消费者,向kafka ...

  5. Kafka的生成者、消费者、broker的基本概念

    kafka是一款基于发布与订阅的消息系统.它一般被称为"分布式提交日志"或者"分布式流平台".文件系统或者数据库提交日志用来提供所有事物的持久化记录,通过重建这 ...

  6. 【Kafka】Flink kafka TimeoutException Timeout expired while fetching topic metadata

    1.背景 一个服务突然不能工作了,数据有输入但是没有数据,好看数据输入进去就丢了,但是正常情况下,应该是最起码正确和错误都应该输出. 下面开始查看日志 docker exec -it xxxx bas ...

  7. kafka报错:Error writing out kafka.log:type=Log,name=LogStartOffset,topic=xx EofException

    文章目录 1.美图 2.背景 1.美图 2.背景 cdh启动kafka报错,错误代码如下 Error writing out kafka.log:type=Log,name=LogStartOffse ...

  8. kafka架构组件概念详解:Broker、Topic、Partition、Leader/Follower、Consumer Group、zookeeper

    消息队列mq的两种模式 发布订阅模式分为两种:①队列推送数据(消费者能力不平均):②消费者拉取消息(要维护一个长轮询).kafka属于消费者主动拉取数据的模式. kafka架构 Broker kafk ...

  9. 在kafka中,可以这么理解topic,partition,broker

    一个topic,代表逻辑上的一个业务数据集,比如按数据库里不同表的数据操作消息区分放入不同topic,订单相关操作消息放入订单topic,用户相关操作消息放入用户topic,对于大型网站来说,后端数据 ...

  10. kafka的topic,broker,partition之间的关系

    一个topic对应多个partition,partition分布在多broker上,多broker一起提供kafka服务. kafka中,Topic是一个存储消息的逻辑概念,可认为为一个消息的集合.物 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记5 Core组件进阶(一)访问图像中的像素
  2. 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)
  3. 【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )
  4. Halcon —— 图像像素类型与转换
  5. 你们要的印度布线,这是一种极端的牛X
  6. 比较OpenDDR和WURFL
  7. Linux 服务器停止当前运行的程序,实验,代码
  8. python优化算法_python – 优化算法
  9. 对损失函数的总结(持续更新)
  10. TCP滑动窗口机制深度剖析
  11. 周期T与频率f数量级对应关系(MHz--μs)
  12. 自动驾驶 7-1 Carla 概述 - 自动驾驶汽车模拟Carla Overview - Self-Driving Car Simulation
  13. 产品经理认证(NPDP)---新产品流程
  14. mysql数据狛聘_.net 生成拼音码与五笔码实例代码
  15. 问卷调查报告html,问卷调查报告格式
  16. c语言问号的用法及举例,问号的使用方法和另类用法有哪些
  17. aws----文件存储efs的全面了解
  18. 广义相对论-学习记录1-第一章-历史回顾
  19. Mybatis中 if 语句使用空格问题
  20. gittrack_什么时候使用git branch –track(开始“看上游”的意思)?

热门文章

  1. [C/C++] ccpuid:CPUID信息模块 V1.02版,支持Mac OS X,支持纯C,增加CPUF常数
  2. 进程中堆栈向下增长的原因
  3. RHEL 6 LAMP(一)
  4. MySql-第七篇单表查询
  5. Vue学习之路第三篇:插值表达式和v-text的区别
  6. HAOI2012高速公路bzoj2752 (线段树,数学)
  7. Control-Tree
  8. jquery插件整理篇(九)数据验证类
  9. 数据源Display方法
  10. js 在线压缩混淆工具