最佳项目实践贡献.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于大数据备份迁移速率和性能优化的解决方案

1:针对行业及背景

:行业

涉及到数据的诸多行业之中。

:背景

大数据又称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。

从某种程度上说,大数据是数据分析的前沿技术。简言之,从各种各样类型的数据中,快速获得有价值信息的能力,就是大数据技术。

大数据区分于传统数据最显著的特征,面向海量的数据,处理数据的效率和捕获速度至关重要。为了满足市场的需求我参与到DataOne数据融合系统的核心研发中。

2:所属项目简介

2.1:项目名称

DataOne数据融合系统

2.2:项目描述

主要实现数据的迁移。包括数据库到数据库,以及服务器的文件到服务器的迁移,实现数据的备份或者数据库数据迁移到国产化数据库等等。为了能够实现一对多(一个数据源多个目的端)高效快速的完成数据迁移。系统的性能是整个系统的核心问题。

3:性能优化方案设计

3.1:系统整体架构

(系统整体架构图)

3.2:主流技术框架

SpringBootSpringCloudRedis消息中间件kafkaZk等等

3.3:设计方案介绍

此方案设计采用SpringBoot进行功能开发。系统整体分为数据中台后台两个模块。

数据中台:

提供用户的操作界面,动态展现数据流转过程,任务的进度,清洗规则以及任务错误队列数据源配置任务创建等信息,不参与数据的抽取和写入。

数据后台:

提供数据的抓去和目的端的写入工作。因为数据源需要迁移的数据量庞大,用户又要快速的完成数据迁移,以免对生产环境或者后续数据需求造成影响,所以系统的性能设计成为了核心。最终经过研究采用消息对列kafka+线程池的方式实现性能提升。

3.3.1:设计的方案概述

因为数据的海量数据要么表个数居多,要么表中的数据量庞大。如果现在创建一个数据库Oracle到国产化数据DM的全量数据迁移任务,那么在数据后台就会将源端的数据中的表放入到一个队列中,在数据抓取层开启数据抓取任务的线程并将任务交于线程池进行管理,抓取层的任务开启是从队列中获取源端数据库表信息,读取这张表的数据,分批次的获取并且以表的信息创建Topic并且发送数据到kafka上,同时数据写入层作为消费者动态的监听指定的Topic上是否有发送到的数据并开启写入数据任务及时进行消费,批量的进行数据在目的端的写入工作。这样实现了真正意义上的读写分离,逻辑分离任务分离。

3.3.2:技术选型的对比

一:消息中间件对比

要实现读写分离就必须引入消息中间件,市面上的消息中间件居多,分析每个的优劣。

MQ的优点

异步:提升系统的响应速度,吞吐量。

解耦:服务之间进行解耦,才可以减少服务之间的影响,提高系统整体的稳定性以及可扩展性。另外解耦后可以实现数据分发。生产者发送一个消息后,可以由一个或者多个消费者进行消费,并且消费者的增加或者减少对生产者没有影响。

3、削峰:以稳定的系统资源应对突发的流量冲击。

MQ的缺点

1、系统可用性降低:系统引入的外部依赖增多,系统的稳定性就会变差。一旦MQ宕机,就会对业务产生影响。(需要考虑如何保证MQ的高可用)

2、系统的复杂度提高:引入MQ后系统的复杂度会大大提高。以前服务之间可以进行同步的服务调用,引入MQ后,会变成异步调用,数据链路会变得更复杂。并且还会带来一系列的问题。(如何保证消息不会丢失?不会被重复调用?怎么保证消息的顺序性?)

3、消息一致性问题:A系统处理完业务,通过MQ发送消息给B、C系统进行后续的业务处理。如果B系统成功,C系统失败,这就需要考虑消息的一致性。

Kafka号称大数据的杀手锏,谈到大数据领域内的消息传输,则绕不开Kafka,这款为大数据而生的消息中间件,以其百万级TPS的吞吐量名声大噪,迅速成为大数据领域的宠儿,在数据采集、传输、存储的过程中发挥着举足轻重的作用。

ApacheKafka它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统(adistributedcommitlog),之后成为Apache项目的一部分。

目前已经被LinkedIn,Uber,Twitter,Netflix等大公司所采纳。

1.优点

性能卓越,单机写入TPS约在百万条/秒,最大的优点,就是吞吐量高。

时效性:ms级

可用性:非常高,kafka是分布式的,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用

消费者采用Pull方式获取消息,消息有序,通过控制能够保证所有消息被消费且仅被消费一次;

有优秀的第三方KafkaWeb管理界面Kafka-Man

您可能关注的文档

文档评论(0)

无名 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档