如何利用 Kafka,实时挖掘企业数据的价值?

首先,问读者老爷们一个简单的问题,如果你需要为你的数据选择一个同时具备高吞吐 、数据持久化、可扩展的数据传递系统,你会选择什么样的工具或架构呢?

答案非常显而易见,那就是 Kafka,不妨再次套用一个被反复用烂掉的例子:淘宝,双十一,上亿的用户在某个时间点同时下单,这个流量规模可想而知,如果直接把所有请求交给后端服务处理,数据库可能已经挂了成千上万次了。而如果先将这些请求写入 Kafka 的消息队列,就可以避免数据库的瞬时高并发写入压力,从而保证数据库的稳定。这就是 Kafka 的削峰填谷场景。

当然,Kafka 的应用场景可不止这一个,还有很多很多,随便再举两个例子:

  • 系统解耦:为两个作用不同但相互依赖的系统进行解耦,举个例子,用户下单后,订单系统将访问库存系统,扣除相应库存数量,此时如果库存系统无法访问,则用户将下单失败。如果在两个系统之间接入 Kafka,订单系统只需要把消息传递给 Kafka,就返回成功了,订单系统恢复后再从 Kafka 读取订单数据,完成库存系统的更新。
  • 异步处理:同样适用于上述示例,让系统的订单处理、库存扣减等操作异步进行,用户下单后可立即收到成功的反馈,减轻系统的瞬时压力。

而针对上述这些场景,Kafka 具备每秒处理上百万条消息的能力,并且能够以分布式、去中心化的方式进行扩展,这还没完,通过其分区和副本机制,可以保证数据的高可用性和一致性。

那么怎么样才能把这么牛*的工具给用起来呢?我们用 Kafka 的第一步,当然是把我们的事务系统接到 Kafka,让数据实时流过去啦,所以又轮到 NineData 闪亮登场了。

什么是 NineData?​

相信各位看官们都知道 NineData 是什么,此处不再赘述,在本文的场景中,NineData 是一个实时数据管道的角色,通过它可以轻松将各种业务系统(例如 MySQL、Oracle)接入 Kafka,摇身一变成为 Kafka 的生产者。

这里我们以 Oracle 为例,介绍配置方法。

步骤一:录入 Oracle 和 Kafka​

  1. 登录 NineData 控制台,单击数据源管理>数据源,然后在页面中单击创建数据源,选择需要录入的数据源。

  2. 根据页面提示进行配置,然后单击创建数据源完成创建。

步骤二:配置同步链路​

  1. 登录 NineData 控制台,单击数据复制>数据复制,然后单击创建复制

  2. 根据页面提示配置复制任务,由于我们想要实现实时数据同步,需要在复制类型处额外勾选增量复制

  3. 配置完成后启动任务,针对您配置的所有同步对象,NineData 会先对所有的存量数据进行全量迁移,接下来就是实时迁移源端 Oracle 中新增的增量数据,所有新写入的数据都将一条不漏地传递到 Kafka,每当 Oracle 端的增量数据已经全部写入 Kafka,并且没有新的增量数据时,任务面板中的延迟将显示为 0 秒,代表当前 Kafka 中的数据是最新的。

步骤三(可选):配置任务异常告警​

在迁移过程中,可能需要系统实时监控任务状态,在任务有异常时即刻通知你。

  1. 登录 NineData 控制台,单击数据复制>数据复制,然后单击复制任务名称。

  2. 单击右上角的配置告警

  3. 输入策略名称,单击保存配置即可。您可以直接使用内置的默认规则,在任务运行失败,或复制延迟大于等于 10 分钟的时候,发送短信提醒您。您也可以自定义创建规则,根据您的需求来进行通知。

下一步​

至此,你已经完成了业务系统接入 Kafka 的所有步骤,业务数据将源源不断地从 Oracle 流入 Kafka,接下来你只需要让你的应用从 Kafka 中消费数据,即可实现完整的数据流处理。

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

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

相关文章

关于Chrome浏览器F12调试,显示未连接到互联网的问题

情况说明 最近笔者更新下电脑的Chrome浏览器,在调试前端代码的时候,遇到下面一个情况: 发现打开调试面板后,页面上显示未连接到互联网,但实际电脑网络是没有问题的,关闭调试面板后,网页又能正…

基于大数据的亚健康人群数据分析及可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

asp.net core grpc快速入门

环境 .net 8 vs2022 创建 gRPC 服务器 一定要勾选Https 安装Nuget包 <PackageReference Include"Google.Protobuf" Version"3.28.2" /> <PackageReference Include"Grpc.AspNetCore" Version"2.66.0" /> <PackageR…

通过 OBD Demo 体验 OceanBase 4.3 社区版

本文作者&#xff1a;马顺华 引言 OceanBase 4.3 是一个专为实时分析 AP 业务设计的重大更新版本。它基于LSM-Tree架构&#xff0c;引入了列存引擎&#xff0c;实现了行存与列存数据存储的无缝整合。这一版本不仅显著提升了AP场景的查询性能&#xff0c;同时也确保了TP业务场景…

看Threejs好玩示例,学习创新与技术(React-three-fiber)

什么&#xff0c;竟有人把ThreeJS和React绑定在一起&#xff0c;混着用&#xff1f; 1、VUE劫持问题 暂先把今天的问题先放一边&#xff0c;先简单回顾下vue劫持的情况。vue会把data里面的数据自动转换为属性&#xff0c;方便界面与数据交互。这本身是没有任何问题&#xff0…

人工智能 实验1 Python语法

我发现了有些人喜欢静静看博客不聊天呐&#xff0c; 但是ta会点赞。 这样的人呢帅气低调有内涵&#xff0c; 美丽大方很优雅。 说的就是你&#xff0c; 不用再怀疑哦 实验1 Python语言基础一 【实验目的】掌握Python及其集成开发环境的下载安装及其简单应用 【实验内容…

vue3中< keep-alive >页面实现缓存及遇到的问题

vue3中< keep-alive >页面实现缓存及遇到的问题 实现原理&#xff1a;keep-alive 是 Vue 的内置组件&#xff0c;当它包裹动态组件时&#xff0c;会缓存不活动的组件实例&#xff0c;而不是销毁它们。实现不同路由是否缓存只需要设置对应路由参数keepAlive为true&#xf…

【周末推荐】替换SwitchyOmega的Chrome浏览器插件

SwitchyOmega插件在我们这个圈子里应该无人不知无人不晓了吧&#xff0c;最近有很多朋友反馈自己的SwitchyOmega不工作了&#xff0c;今天我们将聊聊为什么SwitchyOmega不工作了&#xff0c;并推荐2款实用的Chrome浏览器插件解决这个问题。 为什么要替换SwitchyOmega&#xff…

【有啥问啥】深度理解主动学习:机器学习的高效策略

深度理解主动学习&#xff1a;机器学习的高效策略 在大数据时代&#xff0c;数据量的爆炸性增长与有限的标注资源之间的矛盾日益凸显。如何高效地利用标注资源来训练高质量的模型&#xff0c;成为了机器学习领域亟待解决的问题。主动学习&#xff08;Active Learning, AL&…

Vmware VC登录报错:Vmware报错 HTTP状态 500 - 内部服务器错误

问题现象&#xff1a; 登录Vmware VC系统报错&#xff1a;Vmware报错 HTTP状态 500 - 内部服务器错误、 然后登录管理服务&#xff08;访问端口&#xff1a;5480&#xff09;重启一下异常服务&#xff0c;结果提示证书过期。 初步判断VC SSL证书到期 判定方法&#xff1a; 1…

基于微信小程序爱心领养小程序设计与实现(源码+定制+开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

C++编程基础:内联函数、auto关键字、基于范围的for循环和nullptr

内联函数 概念 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。 如果在函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用。 特性 1.我们可以这…

深入浅出MySQL事务处理:从基础概念到ACID特性及并发控制

1、什么是事务 在实际的业务开发中&#xff0c;有些业务操作要多次访问数据库。一个业务要发送多条SQL语句给数据库执行。需要将多次访问数据库的操作视为一个整体来执行&#xff0c;要么所有的SQL语句全部执行成功。如果其中有一条SQL语句失败&#xff0c;就进行事务的回滚&a…

第五部分:5---三张信号表,信号表的系统调用

目录 信号的递达、未决、阻塞&#xff1a; 进程维护的三张信号表&#xff1a; 普通信号与实时信号的记录&#xff1a; 信号结构的系统调用&#xff1a; bolck表的系统调用&#xff1a; 实例&#xff1a;设置屏蔽信号集中的所有信号都频闭 pending表读取&#xff1a; 信号…

html TAB切换按钮变色、自动生成table

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

OFDM通信系统发射端需要做ifftshift的原因分析

对频率为15Hz的正弦波信号进行FFT分析&#xff0c;并且直接画图&#xff0c;matlab代码如下&#xff1a; fs 100; % sampling frequency t 0:(1/fs):(10-1/fs); % time vector S cos(2*pi*15*t); n length(S); X fft(S); f (0:n-1)*(fs/n); %frequenc…

Django 数据库配置以及字段设置详解

配置PostGre 要在 Django 中配置连接 PostgreSQL 数据库&#xff0c;并创建一个包含“使用人”和“车牌号”等字段的 Car 表 1. 配置 PostgreSQL 数据库连接 首先&#xff0c;在 Django 项目的 settings.py 中配置 PostgreSQL 连接。 修改 settings.py 文件&#xff1a; …

使用ffmpeg合并视频和音频

使用ffmpeg合并视频和音频 - 哔哩哔哩 简介 FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec&#xff0…

vue3+ts不能将类型“Timeout”分配给类型“null”不能将类型“Timeout”分配给类型number

在设置有setTimeout() 函数时&#xff0c;一般是需要进行清除计时器操作的&#xff1b; 常用的做法是定义一个全局变量timer&#xff0c;在onMounted或者有需要的地方进行赋值&#xff0c;在onBeforeUnmount进行clear&#xff0c;一般在定义timer变量时&#xff0c;使用 numbe…

接档《凡人修仙传》的《牧神记》动画,能否成为黑马?

堪称B站国创半边天的《凡人修仙传》第三季将在10月19日迎来完结&#xff0c;接档它的是由玄机科技制作&#xff0c;改编自宅猪同名网络小说的《牧神记》。这部将于10月27日播出的“玄机娘娘新崽”&#xff0c;能否成功接下《凡人修仙传》的好彩头&#xff0c;成为国漫界下一匹黑…