多云与混合云场景下的数据同步方案-KAFKA

Posted 明哥的IT随笔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多云与混合云场景下的数据同步方案-KAFKA相关的知识,希望对你有一定的参考价值。

1 企业业务系统部署架构的变化趋势-多云与混合云

现阶段,企业信息系统部署架构 (DA: Deploy architecture)的一大变化是,越来越多的企业在不断将越来越多的应用部署到云上,即业务系统上云的趋势愈演愈烈

不过企业业务系统上云不是一蹴而就的,也不是单向的一帆风顺的。 这里涉及到新开发的业务系统的主动上云(由于是采用云原生技术栈新开发的业务系统,其上云相对顺畅些),也包括历史遗留系统的迁移上云(单个遗留系统的改造迁移和上云,视乎复杂程度,往往需要一年多甚至更长的时间周期),有时也会有从云端部署回退到私有云或数据中心的情形(上云后不顺畅不适应,也有会退的场景)。

企业所有业务系统的上云,其最终目标,出于各种考量(有业务系统高可用的考量,也有不被云厂商绑定即 vendor-lockin的考量,也有生态系统合作伙伴即经济因素等多种考量),部署架构不会是单一的某个公有云,而是多个公有云和私有云甚至本地数据中心的混合部署形态。

从技术视角看大数据行业的发展趋势

2 多云与混合云部署架构下的难题-数据同步

如上文所说,企业的多个业务系统,长期来看,会是多云与混合云加本地数据中心的混合部署架构;同时由于多个业务系统之间并不是相互隔离的,而是需要协作交互数据的(当然一般不会是直接的 rpc/http 调用),这就涉及到一个难题:多云与混合云部署架构下的数据同步

如果企业没有公司层面的统一的规划,由各个部门各个项目独自设计与实施的部署方案,其架构会如下图所示:

multi and hybrid cloud deploy architecture

3 多云与混合云部署架构下的数据同步方案 - KAFKA

熟悉 KAFKA 的小伙伴都知道,KAFKA 是 LinkedIn 在 201 0左右为解决企业内部繁杂多向的数据交互而推出的数据总线/中央数据管道解决方案,它简化了 LinkedIn 的数据交互架构:

kafka-in-LinkedIn

在 LinkedIn 将 KAFKA 开源之后,由于其高吞吐低延迟的特性(顺序写和顺序读,ZeroCopy, 端到端的压缩,基于 partition的横向扩展),以及不断进化获得的其它特性(基于多副本的高可用容错机制,EOS 有且仅有一次的语义,生产者幂等性,对ACID事务的支持,分层存储的架构 tiered storage),还有不断丰富扩大的生态系统 (kafka connect, kafka schema registry, 以及高层抽象 kafka stream, ksqlDB),在大数据更加注重数据时效性的今天(实时预警,实时风控,实时数仓等各种场景),在微服务更加注重松耦合的今天(微服务相互之间不再直接相互调用,而是通过同步数据来同步状态),(站在了对的风口上,其地位水涨船高),几乎所有的企业都或多或少在其业务系统中用到了 KAFKA (或其同类竞品如 pulsa)。

一文读懂kafka的事务机制

既然 KAFKA 可以在企业内部作为数据总线/中央数据管道的解决方案,那么在新时代的多云与混合云部署架构下,其能否起到数据同步的作用呢?

答案是肯定的。

此时其架构如下如所示:

data sync in multi and hybrid cloud - kafka

该架构的要点如下:

  • 本地数据中心部署一个 KAFKA 集群;

  • 云端部署一个 Kafka 集群中;(如果是多云,则每个云部署一个 KAFKA 集群);

  • 本地数据中心的所有应用,其数据都汇总到本地数据中心的 Kafka 集群中;(可以使用 kafka java/scala api 直接写 kafka,也可以使用各种 cdc 工具采集 rdbms 中的 binlog/redolog 进而写到 kafka, 可用的 cdc 工具包括 canal/maxwell/ogg/debezium等,kafka connect生态的各个 connector插件也可以使用 );

  • 使用 kafka 的数据同步工具 MirrorMaker, 在数据中心与各个云端的 kafka 集群间,同步数据;

  • 各个云端的应用,访问其对应的 kafka 集群获取数据;

该架构的优点如下:

  • 多个大厂生产系统验证了可行的多数据中心架构;

  • 持续性的低延迟的数据同步方案;(在高速网络带宽下,延迟可达几百毫秒);

  • 集中式的管理和监控,支持集成多种安全和治理方案;

  • 节约成本;

  • 可以使用 KAFKA 背后的商业公司 Confluent 提供的 Confluent platform,该产品可以在数据中心/私有云/公有云部署,其架构图如下所示:

4 知识总结

  • 企业IT基础设施的一大趋势是,上云的趋势愈演愈烈;

  • 企业业务系统上云不是一蹴而就的,也不是单向的一帆风顺的;

  • 未来的企业业务系统的部署架构,不会是单一的某个公有云,而是多个公有云和私有云甚至本地数据中心的混合部署形态;

  • 企业业务系统在多云与混合云部署架构下有个难题,即数据同步;

  • 可以使用 KAFKA 作为多云与混合云部署架构下数据同步的解决方案;

  • 使用 KAFKA 作为多云与混合云部署架构下数据同步的解决方案时,本地数据中心与云端的各个云中都会部署一个 KAFKA 集群;

  • 使用 KAFKA 作为多云与混合云部署架构下数据同步的解决方案时,可以使用 kafka 的数据同步工具 MirrorMaker, 在数据中心与各个云端的 kafka 集群间同步数据;

Ps: 笔者了解到,已经有一些第三方公司,基于该方案推出了其封装版的商业产品,来解决多数据中心间的数据同步。(商机呀小伙伴们,这是块长期的大蛋糕)。

相关资料下载:链接:https://pan.baidu.com/s/1FNAkwXbxQBn0tPINKPXVCg 提取码:kafk

!关注不迷路~ 各种福利、资源定期分享!欢迎小伙伴们扫码添加明哥微信,后台加群交流学习。

IT明哥

以上是关于多云与混合云场景下的数据同步方案-KAFKA的主要内容,如果未能解决你的问题,请参考以下文章

一张图看懂混合云数据同步一站式解决方案

运行在Istio之上的Apache Kafka——基准测试

混合多云时代下灾备发展趋势

混合多云时代下灾备发展趋势

云计算中混合云和多云有区别吗?

在线数据迁移,数字化时代的必修课 —— 京东云数据迁移实践