Kafka入门(一)

article/2024/4/20 15:14:54

在这里插入图片描述

1、Kafka简介

Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域(hadoop集群)、物联网领域。其主要设计目标如下:

  1. 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级别以上数据也能保证常数时间的访问性能;
  2. 高吞吐率,即使在非常廉价的机器上也能做到单机支持每秒100K条消息的传输;
  3. 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输,同时支持离线数据处理和实时数据处理;

2、Kafka应用场景

Kafka本质上是一个消息队列(MQ,Message Queue),使用消息队列解决的问题或场景如下:

  1. 解耦:允许我们独立修改队列两边的处理过程而互不影响;
  2. 冗余:有些场景,我们在处理数据的过程中会失败造成数据丢失。消息队列把数据进行持久化直到它们以及被完全处理,降低了数据丢失的风险,确保数据被安全的保存直到使用完成;
  3. 峰值处理能力:不会因为突发的流量请求导致系统崩溃,消息队列能够使服务顶住突发的访问压力,有助于解决生成消息和消费消息的处理速度不一致的情况;
  4. 异步通信:消息队列允许用户把消息放入队列但不立即处理它,等待后续进行消费处理;

3、Kafka专业术语

下面为Kafka的一些重要术语,让大家对Kafka有个整体的认识和感知:

  1. Producer:即消息生产者,向Kafka Broker发消息的客户端;
  2. Consumer:即消息消费者,从Kafka Broker读取消息的客户端;
  3. Consumer Group:即消费者组,消费者组内的每个消费者负责消费不同分区的数据,以提高消费能力。一个分区只能由组内一个消费者消费,不同消费者组之间互不影响;
  4. Borker:一台Kafka机器就是一个Broker,一个集群是由多个Broker组成的且一个Broker可以容纳多个Topic;
  5. Topic:可以简单理解为队列,Topic将消息分类,生产者和消费者面向的都是同一个Topic;
  6. Partition:为了实现Topic扩展性,提高并发能力,一个大的Topic可以分布到多个Broker上,一个Topic可以分为多个Partition进行存储,每个Partition是一个有序队列;
  7. Replica:即副本,为实现数据备份的功能,保证集群中的某个节点发生故障时,该节点上的Partition数据不能丢失,且Kafka仍然能够继续工作,为此Kafka提高了副本机制,一个Topic的每个Partition都有若干个副本,一个Leader副本和若干个Follwer副本;
  8. Leader:即每个分区多个副本的主副本,生产者发送数据的对象,以及消费者消费数据的对象都是Leader;
  9. Follwer:即每个分区多个副本的从副本,会实时从Leader副本中同步数据,并保持和Leader数据同步。Leader发送故障时,某个Follwer还会被选举并成为新的Leader,且不能跟Leader在同一个broker上,防止崩溃时数据可恢复;
  10. Offset:消费者消费消息的位置信息,监控数据消费到什么位置,当消费者挂掉再重新恢复的时候,可以从消费位置继续消费;
  11. ZooKeeper:Kafka集群能够正常工作的基础,Zookeeper帮助Kafka存储和管理集群元数据信息。在最新版本中,以及慢慢要脱离Zookeeper;
  12. record:实际写入 Kafka 中并可以被读取的消息记录。每个 record 包含了 key、value 和 timestamp;

在这里插入图片描述

4、小结

上面总结了Kafka的一些基础内容,下一篇继续分析、总结和分享Kafka的工作进程、存储机制等。


http://www.ngui.cc/article/show-861320.html

相关文章

【实际开发12】- 经验 experience

目录 1. 经验 experience 1. 无多大价值 , 停留数据展示层面 2. 保证数据一致性问题 3. 新增时 , 可先关注核心基础数据 ( 复杂数据以修改形式完善 ) 4. 新增 / 修改 ( 幂等性处理 ) 5. 增 / 删 / 改 添加日志 , 查询无需日志 6. 需要对接多模块的通用字段设计 : String…

值得拥有并收藏的 3个安卓/鸿蒙手机解锁软件

手机无论支持哪种操作系统,都占据了每个人口袋里的空间。随着大量移动设备的使用,搜索引擎上也出现了同样数量的查询,其中最常见的是提供安卓/鸿蒙屏幕锁定删除工具。由于安卓是当今最畅销的设备,我们的首要任务是为您提供最好的安…

并发编程学习案例-ReentrantReadWriteLock非公平的情况下读锁插队和写锁插队场景复现

文章目录一、前言二、源码三、 代码案例(一)复现写的时候插队场景参考执行结果(二)复现读的时候插队参考执行结果参考资料一、前言 Java ReentrantReadWriteLock 是 ReadWriteLock 的实现类,可以分出2把锁,…

2023年深圳CPDA数据分析师认证将于2/25正式开班,快来报名

CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证,它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者,具有广泛的社会认知度和权威性。 无论是地方政府引进人才、公务员报考、各大企业选聘人才,还是招投标加…

2023年关于redis,常常靠常常忘的知识点

一.使用过 Redis 分布式锁么,它是怎么实现的?先拿 setnx 来争抢锁,抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了释放。如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了,那会怎么样&#x…

RDC 2022纪念版开发板-D1S在RT-Smart运行

开发环境 软件 ubuntu20.04VMware Workstation 硬件 RDC2022纪念版开发板全志D1s芯片 材料下载 首先打开虚拟机,创建一个目录存放本次测试的代码,然后克隆RT-Smart用户态代码。 git clone https://github.com/RT-Thread/userapps.git在userapps目…

Navicat Monitor 3.0 现已上市 | 欢迎下载试用

Navicat Monitor 3.0 现已上市Navicat Montior 3.0 现已发布!一经发布,受到广大专业运维人员的关注与选择! 五大新亮点带给运维团队最为实用且有效地提升监控能力。其具备 PostgreSQL 服务器监控能力、支持优化慢查询、构建自定义指标、性能分析工具优化…

计算机视觉和图像处理简介:PIL (Python Image Library) 的基本使用

文章大纲 Image Files and PathsLoad Images in PythonPlotting an ImageGrayscale Images, Quantization and Color ChannelsGrayscale ImagesQuantizationColor ChannelsPIL Images into NumPy ArraysIndexingQuestion 1:ReferencesPillow Library (PIL) Estimated time need…

第5章 Linux平台安装MongoDB教程

Linux平台install MongoDB MongoDB 提供了 linux 各个发行版本 64 位的install 包,帅哥可以在官网download install 包。 install 前咱们需要install 各个 Linux 平台依赖包。 Red Hat/CentOS: sudo yum install libcurl opensslUbuntu 18.04 LTS (“…

Qt 开发环境搭建

一、Qt下载与安装 1、qt下载网站https://download.qt.io/ 其中各个目录含义如下: 目录说明snapshots/预览版,最新开发测试的Qt库和开发工具online/在线安装源official_releases/正式发布版,是与开发版相对应的稳定版Qt库和开发工具&#x…