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

相关推荐
Goat恶霸詹姆斯9 小时前
mysql常用语句
数据库·mysql·oracle
qq_12498707539 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
ask_baidu9 小时前
KafkaUtils
kafka·bigdata
洛豳枭薰11 小时前
消息队列关键问题描述
kafka·rabbitmq·rocketmq
lucky670712 小时前
Spring Boot集成Kafka:最佳实践与详细指南
spring boot·kafka·linq
Coder_Boy_12 小时前
基于Spring AI的分布式在线考试系统-事件处理架构实现方案
人工智能·spring boot·分布式·spring
洛豳枭薰12 小时前
Innodb一次更新动作
mysql
袁煦丞 cpolar内网穿透实验室13 小时前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
岁岁种桃花儿13 小时前
CentOS7 彻底卸载所有JDK/JRE + 重新安装JDK8(实操完整版,解决kafka/jps报错)
java·开发语言·kafka
xcLeigh13 小时前
Python 项目实战:用 Flask 实现 MySQL 数据库增删改查 API
数据库·python·mysql·flask·教程·python3