Fundamentals of Amazon MSK (Amazon Managed Streaming for kafka)

Amazon Managed Streaming for Apache Kafka 或 Amazon MSK 允许您在 AWS 中运行利用 Apache Kafka 的应用程序。 Kafka 提供了一个流处理平台,并作为基于发布者/订阅者的持久消息传递系统运行。 其主要功能是能够以极高的容错能力获取数据,允许这些记录的连续流,从而保持数据的完整性,包括接收数据的顺序。

然后,Apache Kafka 充当这些数据生成实体和订阅它的客户之间的缓冲区。 订阅者按照先进先出的原则从 Kafka 主题接收信息,从而使订阅者能够获得所生成数据的正确时间线。

Kafka 是一种开源技术,支持大量社区驱动的工具和附加组件。 这使得它非常可定制,并让开发人员可以自由地构建和创建他们需要的东西。 通过 Amazon MSK,您可以使用本机 Apache Kafka API 创建数据湖、将信息流式传输到多个源,并为数据分析应用程序和管道提供支持,所有这些都在 AWS 内完成。

您想要使用 Amazon MSK 来滚动自己的 Kafka 实施的主要原因是 Amazon MSK 是一项完全托管的服务。 这意味着您不需要照顾任何服务器,不需要担心任何升级,也不需要费心处理 Apache Zookeeper,这是一个必需的协调软件,用于处理编排集群任务和 维护集群的总体状态。

Amazon MSK and Kafka Under the Hood

您需要了解的有关 Kafka 的一切都可以归结为三个主要思想。 您有创建数据的生产者,例如收集用户流量信息的网站,您有接收数据的主题,该信息以极高的容错性存储,并且您有可以按顺序读取该数据并知道它从未发生过的消费者。 一路上改变或修改。

Kafka 通常被用作解耦机制,以帮助缓解许多不同生产者和消费者之间的紧张关系。 例如,您可能有 10 个网站,所有网站都创建需要处理的日志信息。

假设您还有 20 个微服务,每个微服务都尝试过滤该数据的各种特定变量并进行预测。 如果您对所有这些信息进行硬编码,您将需要担心 200 个单独的连接。

通过使用 Kafka 作为中介,所有日志信息都可以推送到单个主题中。 这一主题现在是所有微服务的单一事实来源。 他们每个人都可以根据需要阅读并收集所需的信息。 该主题将保留生产者信息,直到达到保留期限。 此窗口是可配置的,默认时间为 7 天。

Kafka 还具有基于大小的保留策略,您可以在其中配置可以存储的最大数据量。 一旦达到最大数据量,Kafka 将开始踢出并删除旧信息。 这两个选项都可以按主题进行配置,这为降低数据成本或更长时间地保留高价值信息提供了很大的灵活性。

每个主题都有多个分区,除非提供分区键,否则数据将随机写入其中。 一旦数据写入主题,就永远无法更改。 您可以提供对该数据的更新,但它只是分区中的下一个条目,而不是覆盖原始数据。 主题的分区越多,并行度就越高。

Provisioning an Amazon MSK Cluster

创建 Amazon MSK 集群时需要预置两个元素:代理实例和代理存储。 Broker实例是帮助管理Kafka集群的工作节点。 您的集群可以有多个代理,但如果需要,也可以作为单个节点运行。 代理实例可以在同一可用区域内或跨多个可用区域运行,以创建高可用集群,这是许多架构所需要的。

与自行推出的 Kafka 版本相比,使用 Amazon MSK 的一大好处是,Amazon 将密切关注这些代理节点,并在它们变得不健康时更换它们。 否则,您将不得不自己管理所有这些。 代理存储是保存流入 Amazon MSK 的所有数据的地方。

在 Amazon 中,此存储位于 EBS 卷内,并获得 EBS 提供的所有保护,例如持久性和容错能力。 您还可以使用 Amazon EBS 服务器端加密和 AWS KMS(密钥管理服务)对这些数据卷进行加密。 然而,关于存储的一个有趣的注意事项是,一旦您分配了代理存储,您只能增加存储量,而不能减少。 如果您达到最大容量,代理的存储可以自动向上扩展。

如果您已经拥有自己管理的 Kafka 集群(无论是在本地还是在云中),您可以迁移到 Amazon MSK。 有许多第三方开源工具(例如 MirrorMaker)可以帮助将数据从 Kafka 集群复制到 Amazon MSK。

Architectural Example

我认为真正了解服务如何工作的最佳方法之一是了解它如何融入功能架构。 让我们看一下来自 Amazon 的使用 Amazon MSK 的无服务器示例。

假设我们是一家经常与公众打交道的企业,我们需要了解客户和整个世界当前的趋势。 创建某种可以拉取 Twitter 并对主题标签进行情绪分析或阅读推文以探索共性的应用程序可能会有所帮助。

看看这个架构。 在这里,我们有一个系统,该系统利用 Amazon MSK、AWS Glue、Amazon Redshift,并使用 Amazon QuickSight 创建函数图来显示从这些服务收集的所有相关信息。 通过设置,我们可以使用 Twitter 作为数据生产者,并读取所有公共主题标签以了解平台上当前的趋势。

让我们花点时间探讨一下每项服务所扮演的角色。 正如我们已经讨论过的,Amazon MSK 这项服务充当我们所有数据的暂存区。 Amazon MSK 确保我们收到的信息保持我们获取信息的顺序,并且不会以任何方式消失或自毁。 现在需要指出的是,MSK 主要只是数据的着陆平台,需要生产者将信息推送到其中。

在此示例中,我们可以使用 Apache NiFi 配置 Twitter 并从中提取数据。 但是,您可以使用您选择的任何机制。 然后,AWS Glue 充当数据使用者,并能够从 Amazon MSK 提取信息。 Glue 可以执行流式 ETL、提取以转换负载、获取原始数据、将其转换为有意义的数据,并将其推送到 Amazon Redshift 中。 Redshift 只是一个数据仓库解决方案,可以很好地保存我们的所有数据。

最后,QuickSight 可用于查询和可视化存储在 Amazon Redshift 中的数据。 它可以以折线图、表格、饼图、条形图和词云的形式显示您的结果。 这对于做出决策和从数据中收集信息非常有价值。 现在我们有了一个简单的架构,可以从 Twitter 中提取数据,并允许您对主题标签进行可视化并做出有意义的决策以供将来使用。

zongjie

最后,Amazon MSK 就是 AWS 云中的 Kafka。 它提供了 Kafka 标准版本所享有的所有功能,而无需自行管理底层基础设施。 总体而言,Amazon MSK 的最大好处可能是能够使用 Kafka 并轻松连接到 AWS 生态系统的其他部分。 这使您能够为流数据库分析等创建强大、健壮且完全无服务器的架构。

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

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

相关文章

网工内推 | 国企、上市公司网工、运维,CCNA即可,补贴福利多

01 深圳新思 招聘岗位:网络工程师(中电集团) 职责描述: 1:负责办公室电脑的桌面运维,主要是windows维护与应用维护; 2:负责办公室网络设备配置,如防火墙,交换…

CMake 编译 raylib 程序

CMakeLists.txt 内容如下: cmake_minimum_required(VERSION 3.0) project(t001) # 搜索指定目录下源文件 file(GLOB SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) # 包含头文件路径 include_directories(F:/vclib/raylib-5.0_win64_mingw-w64/include) # 包含静态…

CountDownLatch介绍和使用

1. CountDownLatch是什么 CountDownLatch 是 Java.util.concurrent 包中的一个同步工具类,用于控制线程的执行顺序。它的主要作用是让一个或多个线程等待其他线程完成操作后再继续执行。 2. CountDownLatch 类常用方法 CountDownLatch(int count) 是 CountDownLa…

使用maven命令行。手动搭建maven项目

要使用Maven命令行,首先需要确保已经安装了Maven。接下来,可以按照以下步骤手动搭建Maven项目: 创建项目目录:在命令行中切换到你希望创建项目的目录下,然后执行以下命令: mkdir myproject cd myproject初…

软件测试基础概念

一、需求 定义:满足用户期望或正式规定文档所需条件和技能,包含用户需求 用户需求:用户使用产品所必须完成的任务 该需求比较简略 软件需求:详细描述开发人员必须实现的软件功能 需求是标准,测试人员按照这个标准测…

python之第三方模块

配置pip源 更新pip pip install --upgrade pip 下载清华源 pip config set global.index-url Simple Index requests 用代码模拟向浏览器发送请求 #返回的是json格式,分页查询 import requests for i in range(0,100,10):resrequests.get(url"https://mov…

全球首个 AI 超级工程师:拥有全栈技能,一个指令就能完成整个开发过程

全球首位AI软件工程师Devin是由初创公司Cognition推出的,它被认为是世界上第一个完全自主的AI软件工程师[2][15]。Devin具备强大的编程和软件开发能力,能够在多个方面协助或完全独立地完成软件开发任务[15]。它的核心能力包括自学新语言、开发迭代App、自…

基于qt和css的MP3音乐播放器引擎开发

1 QMainWindow: QMainWindow 是用于创建应用程序主窗口的类。它通常用于具有菜单栏、工具栏、状态栏等标准组件的窗口。 QMainWindow 提供了一种框架,用于组织和管理应用程序的用户界面元素。它可以包含其他小部件(widgets)和布局…

C语言分析基础排序算法——归并排序

目录 归并排序 递归版本 非递归版本 非递归版本的问题 归并排序小优化 归并排序 归并排序,分为分治以及合并,分治部分可以使用递归或者非递归完成,归并排序的基本思路是:将已有序的子序列合并,得到完全有序的序列…

解决 :nvrtc: error: invalid value for --gpu-architecture (-arch)

核心:在显卡安装的cuda版本适配的pytorch中,更换pytorch的版本 刚遇到这个错误时,在网上搜索了一下,感谢博主1和博主2的解决方法带给我的启发。 标题服务器cuda是11.3版本,配置其他环境“御用”的pytorch安装语句 co…

社区维修平台|基于SpringBoot+ Mysql+Java+JSP技术的社区维修平台设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 住户后台功能 维修员前台功能 维修员后台功能 管理员功能登录 系统功能设计 数据库E…

用python实现Dubins曲线生成

Dubins曲线是连接两个具有指定方向和位置的点的最短路径,其中路径受到固定曲率约束(如车辆的转向限制)。Dubins曲线常用于机器人路径规划、车辆轨迹规划等领域。 Dubins曲线可以分为三种类型:CCC (Curve-Curve-Curve), CCL (Curv…

C++面试题和笔试题(四)

一、intx[6][4],(*p)[4];px;则*(p2)指向哪里? A X[0][1]B X[0][2]C X[1][0]D X[2][0] 官方解释: D int x[6][4], (*p)[4]; p x; 在这里,x 是一个二维数组,它有6行和4列。p 是一个指向具有4个整数的数组的指针。 当你执行…

DevOps-SonarQube整合Jenkins

下载SonarQube Scanner 登录Jenkins服务器,下载SonarQube Scanner wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip安装unzip,需要通过它来解压zip压缩包 yum install -y unzip解压So…

学习笔记——计算机网络(Internet、网络边缘)

一、Internet 网络是由多个计算机和其他网络设备通过通信链路相互连接而形成的互联网,用于实现数据传输和资源共享。它是现代信息社会中不可或缺的基础设施。 1.计算机网络: 通过通信链路连接; 以共享资源为目标; 资源包括&a…

基于Web的论文管理系统设计

目 录 目 录 III 摘 要 V 关键词 V Abstract VI Key Word VI 第一章 绪论 6 1.1系统设计背景 1 1.2系统设计目的与意义 1 1.3国内外现状 2 1.4本文结构 3 第二章 需求分析 3 2.1系统需求分析 4 2.2系统角色设计 4 第三章 系统开发技术 4 3.1 PHP语言简介和特点 5 3.2 Mysql数据…

【项目笔记】java微服务:黑马头条(day02)

文章目录 app端文章查看,静态化freemarker,分布式文件系统minIO1)文章列表加载1.1)需求分析1.2)表结构分析1.3)导入文章数据库1.3.1)导入数据库1.3.2)导入对应的实体类 1.4)实现思路1.5)接口定义1.6)功能实现1.6.1):导入heima-leadnews-article微服务&am…

学C还是学C++?

计算机专业学生,大一上学期学习了C语言,下学期学校要学C,请问我寒假继续深入学习C还是提前学C,大佬们有什么建议吗?(个人感觉C学的不是很明白,链表文件什么的还不是很懂…) 这个并没有一个统一的…

流量池增长(6)

DMP和游戏化思维 流量的运营与挖掘 DMP: Data Management Platform,是一种用户数据标签化的管理和应用平台 DMP的价值 精准营销运营优化 建立DMP 用户标签化:与其他企业进行数据标签的撞库,进行精准的广告投放管理:执行营销策略…

7-3 截取字符串7-5 单词倒排

7-3 截取字符串&#xff08;分数 25&#xff09; 作者 刘琦 单位 天津城建大学 用户在三行中分别输入一个字符串s和两个整数m,n&#xff0c;输出字符串s中位于m和n&#xff08;包括m但不包括n&#xff0c;m<n&#xff09;之间的子字符串。 输入格式: 例如&#x…