如何利用 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 中消费数据,即可实现完整的数据流处理。

相关推荐
Mico182 小时前
MySQL 8.0.35 源码编译安装笔记
数据库·笔记·mysql
开发小程序的之朴2 小时前
安企CMS的安装-PHPStudy(小皮面板)部署
windows·mysql·nginx
脱胎换骨-军哥3 小时前
C++ 与 Go 生成质量比拼,谁是分布式主力语言
c++·分布式·golang
微露清风3 小时前
浅析 MySQL 索引
android·数据库·mysql
91刘仁德4 小时前
MySQL 数据类型详解
android·笔记·mysql·adb
Cx330❀13 小时前
【MySQL基础】一文吃透“表的约束”:从 Null/Default 到主外键的终极安全法则
linux·服务器·数据库·c++·mysql·安全
大阳光男孩13 小时前
Spring Boot 整合 Debezium 实现 MySQL 增量数据监听(嵌入式版)
spring boot·后端·mysql
我科绝伦(Huanhuan Zhou)13 小时前
MySQL极端场景数据丢失防护:从Crash-Safe到异地备份
数据库·mysql
笨蛋不要掉眼泪14 小时前
MySQL架构揭秘:MVCC解决读一致性问题
数据库·mysql·架构
珠***格17 小时前
XGF10-Z-4典型接入方式解析:10千伏专变用户380伏多点分布式光伏如何并网?
网络·人工智能·分布式·安全·边缘计算