Kafka(三)概述

目录

  • 1 Kafka的应用场景
    • 1.1 活动跟踪
    • 1.2 消息传递
    • 1.3 指标和日志记录
    • 1.4 提交日志
    • 1.5 流式处理
  • 2 Kafka的核心概念
    • 消息(message)
    • 键(Key)
    • 批次(Batch)
    • 模式(Schema)
    • 主题(Topic)
    • 分区(Partion)
    • 分区段(Segment)
    • 分区副本(Replica)
    • 流(Stream)
    • 生产者(Producer)
    • 消费者(Consumer)
    • 偏移量(Offset)
    • 消费者群组(Consumer Group)
    • 中间人(Broker)
    • 集群(Cluster)
    • 控制器(Cluster Controler)
    • 分区首领(Partition Leader)
    • 跟随者(Follower)
    • 保留消息(Message Retaintion)
    • 紧凑型日志(Campact Log)
    • 多集群(Multiple Clusters)
    • ZooKeeper集群

Apache Kafka是一个开源分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。
事件流(event streaming):从技术上讲,事件流是以事件流的形式从数据库、传感器、移动设备、云服务和软件应用程序等事件源实时捕获数据的做法;持久地存储这些事件流以供以后检索;实时地以及回顾性地操纵、处理和响应事件流;以及根据需要将事件流路由到不同的目的地技术。因此,事件流确保了数据的连续流动和解释,从而使正确的信息在正确的时间、正确的地点出现。

1 Kafka的应用场景

1.1 活动跟踪

收集客户互动和订单并立即做出反应,如零售、酒店和旅游业以及移动应用程序。
实时跟踪和监控汽车、卡车、车队和货运,如物流和汽车行业。

1.2 消息传递

连接、存储公司不同部门产生的数据并使其可用。
作为数据平台、事件驱动架构和微服务的基础。

1.3 指标和日志记录

持续捕获和分析来自物联网设备或其他设备(如工厂和风电场)的传感器数据。
监测医院护理中的患者并预测病情变化,以确保在紧急情况下及时治疗。

1.4 提交日志

复制数据库提交日志到远程系统。
合并数据库更新。
恢复系统。

1.5 流式处理

实时处理支付和金融交易,例如在证券交易所、银行和保险中。

2 Kafka的核心概念

消息(message)

Kafka的数据单元称为消息

键(Key)

消息可以包含一个可选的元数据,就是。键被用于决定消息被分配到哪个分区,例如键的摘要值相同的消息存入同一个分区。

批次(Batch)

为了提高效率,消息会被分为批次写入Kafka。批次包含了一组属于同一个主题,同一个分区的消息。

模式(Schema)

对Kafka来说,不论任何消息都作为字节数组存储。但是对不同的应用程序来说,消息是有不同的格式的。所以需要在消息的处理过程中用消息模式来描述消息的格式。常见的模式有JSON,XML,AVRO等。

主题(Topic)

主题用来分类消息。

分区(Partion)

主题被非为若干个分区,一个分区就是一个提交日志。

  • 不同的分区可以部署在不同的服务器上。
  • 消息以追加的方式写入分区,已先进先出的方式读取。
  • 在主题范围内无法保证消息的顺序,在单个分区中可以。所以如果向严格保证消息的处理顺利,可以只使用一个分区,或者所有消息的键保持一致,获取自定义分区规则。

分区段(Segment)

一个分区又被分为多个段(segmnet),一个段就是一个日志文件。

分区副本(Replica)

一个分区可以被复制多分,并部署在不同的服务器上。实现数据的冗余和伸缩。

流(Stream)

是一组从生产者移动到消费者的数据。

生产者(Producer)

Kafka的客户端有两种类型:生产者和消费者。生产者创建消息。

消费者(Consumer)

消费者读取消息。消费者订阅不同的主题,并按照写入顺序读取。消费者通过偏移量来区分已经读取过的消息。

偏移量(Offset)

一种元数据,递增的长整形。Kafka写入消息时指定,并保存在一个内部主题(_consumer_offsets)中,保证消费者关闭后,读取状态不变。

消费者群组(Consumer Group)

一个消费者群组包含多个消费者,属于同一个群组的消费者共同读取一个主题时,Kafka能保证一个分区同时只被同一个消费者群组中的一个消费者读取。但是其他群组的消费者还可以读取这个分区。

中间人(Broker)

一个单独的Kafka服务器被称为broker。它接收生产者的消息,设置偏移量,并保存到磁盘;它同时响应消费者的请求,并返回已发布的消息。

集群(Cluster)

多个broker组成一个集群。

控制器(Cluster Controler)

每个集群都有一个broker充当控制器的角色,通过选举产生生。它的职责为:

  • 为broker分配分区
  • 监控broker

分区首领(Partition Leader)

一个分区从属于一个broker,称为分区首领

跟随者(Follower)

一个分区的其他副本被分配给不同的broker,这些broker被称为追随者

保留消息(Message Retaintion)

消息在Kafka中默认保留7天或者数据量达到1G。

紧凑型日志(Campact Log)

有些数据只需要保留最新的值,例如指标,所以可以把主题配置生紧凑型日志,只有最有一条指定键的消费会被保留下来。

多集群(Multiple Clusters)

使用多集群的原因:

  • 数据类型分离
  • 安全需求隔离
  • 多数据中心(灾难恢复)

Kafka提供了一个叫做MirrorMaker的数据镜像工具,用来在不同的集权之间同步数据。

ZooKeeper集群

Kafka使用ZooKeeper维护集权的成员信息,它起到了两个重要作用:

  1. 选举控制器
  2. 保存集群元数据:broker,配置,主题,分区,副本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复旦MBA科创青干营(二期):探索合肥科创企业的创新之路

11月18日-19日,复旦MBA科创青干营二期学生开启了整合实践活动的第三次企业参访,前往位于合肥的蔚来第二先进制造基地、安徽万邦医药科技股份有限公司和合肥国轩高科动力能源有限公司,在学术导师和科创企业家“双导师”的指导下,深…

【C++】STL 算法 ④ ( 函数对象与谓词 | 一元函数对象 | “ 谓词 “ 概念 | 一元谓词 | find_if 查找算法 | 一元谓词示例 )

文章目录 一、函数对象与谓词1、一元函数对象2、" 谓词 " 概念3、find_if 查找算法 二、一元谓词示例1、代码示例 - 一元谓词示例2、执行结果 一、函数对象与谓词 1、一元函数对象 " 函数对象 " 是通过 重载 函数调用操作符 () 实现的 operator() , 函数对…

pythonMatplotlib六:Matplotlib的图例和注释功能

1.添加图例: import matplotlib.pyplot as plt# 准备数据 x [1, 2, 3, 4, 5] y1 [2, 4, 6, 8, 10] y2 [1, 3, 5, 7, 9]# 创建折线图并设置标签 plt.plot(x, y1, labelLine 1) plt.plot(x, y2, labelLine 2)# 添加图例 plt.legend()# 添加标题和标签 plt.title(&…

【数值分析】非线性方程求根,牛顿法,牛顿下山法,matlab实现

4. 牛顿法 收敛时牛顿法的收敛速度是二阶的,不低于二阶。如果函数有重根,牛顿法一般不是二阶收敛的。 x k 1 x k − f ( x k ) f ′ ( x k ) x_{k1}x_k- \frac{f(x_k)}{f(x_k)} xk1​xk​−f′(xk​)f(xk​)​ matlab实现 %% 牛顿迭代例子 f (x) x…

华为交换机常用命令

华为交换机常用命令 查看系统状态和基本信息: display version:显示设备版本信息 display device:显示设备硬件信息 display interface brief:显示接口的基本状态 display ip interface brief:显示IP接口的基本状态 …

创建Qt项目

项目工程名称一般不要有特殊符号,不要有中文 项目工程保存路径可修改的,但路径不要带中文 构建系统,有3种,这里使用qmake qmake和cmake区别 构建过程不同,项目管理不同。 1、构建过程,qmake是Qt框架自带的…

MySQL数据库:索引

目录 一. 索引的价值 二. 数据库与磁盘的IO 2.1 磁盘的结构 2.2 磁盘访问 2.3 MySQL与磁盘的交互 三. 对索引的理解 3.1 Page的结构 3.2 B树和B树索引结构 3.2.1 B树的结构 3.2.2 B树 3.3 聚簇索引和非聚簇索引 四. 索引的操作 4.1 索引的创建 4.2 索引的查看 4.…

new FormData 同时发送表单 json 以及文件二进制流

需要新增时同时发送表单 json 以及对应的文件即可使用以下方法传参 let formDataParams new FormData(); 首先通过 new FormData() 创建你需要最后发送的表单 接着将你的对象 json 存储,注意使用 new Blob 创建大表单转换成 json 格式。以…

解决:TypeError: ‘tuple’ object does not support item assignment

解决:TypeError: ‘tuple’ object does not support item assignment 文章目录 解决:TypeError: tuple object does not support item assignment背景报错问题报错翻译报错位置代码报错原因解决方法方法一:方法二:今天的分享就到…

【Flink精讲】Flink数据延迟处理

面试题:Flink数据延迟怎么处理? 将迟到数据直接丢弃【默认方案】将迟到数据收集起来另外处理(旁路输出)重新激活已经关闭的窗口并重新计算以修正结果(Lateness) Flink数据延迟处理方案 用一个案例说明三…

Vue+JavaSpingBoot笔记(1)

一、前后端通信参数问题 1.集合【字典】类型 Vue前端传递参数: export default {methods: { test(){// 将 filteredData 中的每一行值放入 newData 对象数组中 const newData filteredData.map(item > ({key1: item.Value1,key2: item.Value2,key3: "测试"}));r…

Rasa中的tracker_store和event_broker

Rasa 中的 tracker_store 相对主流为 Redis,event_broker 相对主流为 RabbitMQ。后续为了研究学习直接将 tracker_store 和 event_broker 的 type 都设置为 SQL,使用 MySQL 统一管理。 一.Rasa 中的 tracker_store 要使用 MySQL 作为 Rasa 的 tracker_s…

开源许可证

文章目录 一、简介二、详细信息参考 一、简介 开源是指公开源代码,但这并不代表就是免费的。 开源许可证是一种法律许可。 通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。 版权法默认禁止共享,也就是说&am…

忘记密码mysql 8.2重置root密码|macos+linux

重置密码 2024年1月6日验证 1.找到support-files下的服务 # 查找mysql位置 which mysql #/usr/local/bin/mysql# 查找原始位置 ls -al /usr/local/bin | grep mysql# 进入原始的为值找到support-files文件夹 # 注意路径要全,我这里是macos系统就是Cellar下 cd /usr/local/Cell…

如何选择消息队列?Kafka 与 RabbitMQ

在上一期中,我们讨论了使用消息队列的好处。然后,我们回顾了消息队列产品的历史。现在看来,当我们需要在项目中使用消息队列时,Kafka 是首选产品。但是,当我们考虑特定要求时,它并不总是最佳选择。 数据库…

【Kubernetes】认证授权RBAC (一)

认证授权RBAC 一、k8s安全管理:认证、授权、准入控制概述1.1、简介【1】认证基本介绍【2】授权基本介绍【3】准入控制基本介绍 1.2、认证【1】客户端认证【2】Bearertoken【3】Serviceaccount【4】拓展:kubeconfig文件 1.3、授权【1】什么是RBAC&#xf…

rust 注释文档生成 cargo doc

rust的cargo文档生成 只需要在每个函数写清楚注释,就可以自动生成文档,很方便 即不用写文档,又可以快速查看,是开发rust的必备技能 rust安装和开发环境配置,可以参考:链接 1.写注释的方法 连续三个 \ 即…

uniapp---安卓真机调试提示检测不到手机【解决办法】

最近在做APP,由于华为手机更新过系统,再次用来调试APP发现就不行了。下面给出具体的解决方法: 第一步:打开【允许开发人员选项】 找到【设置】点击【关于手机】找到【版本号】点击7次或多次,允许开发人员选项。 第二…

首次引入大模型!Bert-vits2-Extra中文特化版40秒素材复刻巫师3叶奈法

Bert-vits2项目又更新了,更新了一个新的分支:中文特化,所谓中文特化,即针对中文音色的特殊优化版本,纯中文底模效果百尺竿头更进一步,同时首次引入了大模型,使用国产IDEA-CCNL/Erlangshen-Megat…

Python中的@abstractmethod

abstractmethod 是 Python 中 abc 模块(Abstract Base Classes)提供的一个装饰器,用于声明抽象方法。抽象方法是指在抽象类中声明但没有提供具体实现的方法,而是由其子类提供具体实现。 使用 abstractmethod 装饰器可以使得子类在…