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

相关推荐
JanelSirry12 小时前
分布式和微服务的区别是什么?
分布式·微服务·架构
别或许13 小时前
在centos系统下,安装MYSQL
linux·mysql·centos
丁丁丁梦涛13 小时前
CentOS修改MySQL数据目录后重启失败的问题及解决方案
linux·mysql·centos
disanleya13 小时前
怎样安全地开启MySQL远程管理权限?
数据库·mysql
lang2015092815 小时前
MySQL 8.0.29 及以上版本中 SSL/TLS 会话复用(Session Reuse)
数据库·mysql
Jabes.yang15 小时前
Java面试大作战:从缓存技术到音视频场景的探讨
java·spring boot·redis·缓存·kafka·spring security·oauth2
咖啡Beans15 小时前
6分钟慢速搭建MySQL服务器
mysql
花月C1 天前
高效查找数据的数据结构—MySQL 索引
数据结构·数据库·mysql
Mr_wilson_liu1 天前
往kafka创建生产者和消费者,并且打数据和消费数据
kafka
PiscesCanon1 天前
达梦开启awr功能报错:[-7160]:Object [DBMS_WORKLOAD_REPOSITORY_DATA_LOW] is invalid
数据库·mysql