<output id="z5f63"></output>

    1. <li id="z5f63"></li>

      <output id="z5f63"></output>

          1. <dl id="z5f63"><ins id="z5f63"></ins></dl>
          2. <dl id="z5f63"></dl>

              <dl id="z5f63"><s id="z5f63"><thead id="z5f63"></thead></s></dl>

                <dl id="z5f63"></dl>
              1. <output id="z5f63"></output>

                    <output id="z5f63"></output>

                    <li id="z5f63"></li>
                    <output id="z5f63"></output>
                      1. C114通信网: 门户(微博 微信) 论坛(微博) 人才(微博) 百科 | C114客户端 | English | IDC联盟 与风网

                        新闻 - 电信运营商 - 中国移动 - 正文 运营商投稿当日通信资讯

                        中国移动研究院常耀斌:商用大数据平台的研发之路

                        http://www.vmoj.tw ( 2019/3/26 09:27 )

                        我是中国移动研究院的资深架构师常耀斌。2007年,我加入中国电科,参与并主导设计的“全军一体化指挥作战平台”荣获国家科技进步特等奖。2009年,我出任华为云第一代架构师,带领团队研制并运营了国内首个公有云平台。回首10年多的科研工作历程,也是中国经济高速发展的10多年,中国高铁、核电、航空、互联网、云计算、大数据、人工智能等领域无不铭刻着“中国名片”,这就是科技是第一生产力的?#23548;?#39564;证!2007年,获得北邮计算机工学硕士后信心满满的踏上了科研之路,一干就是十多年,有苦有泪有艰辛,但收获的是一种为国家科技发展能奉献和敢担当的责任感。

                        今天,又一次站在了移动互联网这个朝阳产业的跑道上,和诸多大数据和人工智能的世界级大咖共商创新发展!2012年加入中国移动集团研究院,担任资深大数据专家和研究员,主攻大数据和人工智能平台架构设计和关键技术研究,并多?#38382;?#36992;在大数据行业和主流峰会进行学术交流,在见证我的学生们历练为BAT/TMD的技术专家同时,也悄然实现着我的技术梦想-让高科技研发标准化和平民化。今天有幸分享商用大数据平台研发经验,让大数据知识?#35745;?#22312;各位的?#38498;?#37324;转起来,并形成商用产品的作战体?#25285;?#36825;是“作为架构师,何谓正确?”的行动基础。我分享四大部分:知识分类,系统架构,核心技术,经验分享。具体如下:

                        大数据知识结构归类:

                        * 文件存储:

                        Hadoop HDFS、Tachyon、KFS

                        * 离线计算:

                        Hadoop MapReduce、Spark

                        * 流式、实时计算:

                        Storm、Spark Streaming

                        * K-V、NOSQL数据库:

                        HBase、Redis、MongoDB

                        * 资源管理:

                        YARN、Mesos

                        * 日志收集:

                        Flume、Scribe、Logstash、Kibana

                        * 消息系?#24120;?/p>

                        Kafka、StormMQ、ZeroMQ、RabbitMQ

                        * 查询分析:

                        Hive、Impala、Pig、SparkSQL、Flink

                        * 分布式协调服务:

                        Zookeeper

                        * 集群管理与监控:

                        Ambari、Ganglia、Nagios、Cloudera Manager

                        * 数据挖掘、机器学习:

                        Mahout、Spark MLLib

                        * 数据同步:

                        Sqoop

                        * 任务调度:

                        Oozie

                        知识汇总及系统架构形成:

                        以物联网大数据平台的架构为例,围绕着这条主线:基础架构-》离线分析-》离线迁移-》离线同步-》实时计算-》实时交换-》实时调度-》实时存储-》智能分析。

                        核心技术(10个单元)

                        第一单元:基础架构-Hadoop的破冰之旅

                        Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop是实现了真正意义上的去“IOE”,?#32469;?#26159;开启了摆脱国外高科技公司的全球垄断时代,让全球用户可以轻松地在免费的Hadoop上开发和运行处理海量数据的应用程序。建议先把Hadoop集群构建起来,具体操作见我的博客:https://blog.csdn.net/peter_changyb/article/details/81195920。它主要有以下几个优点:

                        * 高可靠性。

                        Hadoop?#27425;?#23384;储和处理数据的能力值得人们信赖。

                        * 高扩展性。

                        Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以?#22870;?#22320;扩展到数以千计的节点中。

                        * 高效性。

                        Hadoop能够在节点之间动态地移动数据,并保证各个节点动态平衡,因此处理速?#30830;?#24120;快。

                        * 高容错性。

                        Hadoop能够自动保存数据的多个?#21271;荊?#24182;且能够自动将失败的任务重?#36335;?#37197;。

                        Hadoop可?#36816;?#26159;大数据存储和计算的开?#22870;?#31062;,现在大多开源的大数据框架?#23478;?#36182;Hadoop或者与它能很好的兼容。具备如下:

                        * Hadoop 1.0、Hadoop 2.0

                        * MapReduce、HDFS

                        * NameNode、DataNode

                        * JobTracker、TaskTracker

                        * Yarn、ResourceManager、NodeManager

                        1.1 HDFS是Hadoop的关键技术所在

                        HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。知道Hadoop的系统日志在哪里。

                        1.2  了解并行计算的核心原理

                        MapReduce:分而治之的优秀思想;HDFS:数据?#21046;?#21644;数据复制为核心的技术。数据到底在哪里,什么是?#21271;荊?/p>

                        Yarn如何用分层管理思想革命性的改变了MapReduce的核心架构?NameNode职责?;Resource Manager职责?

                        1.3 亲自写MapReduce程序

                        第二单元:离线分析

                        2.1 SQL On Hadoop之Hive

                        什么是Hive?官方解释如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax.

                        数据仓库物理上是数据库,逻辑上仓库。有两个特点:海量数据、相对稳定的;相对稳定,指很少会被更新和删除,只会被大量查询。而Hive,也是具备这两个特点,因此,Hive适?#29486;?#28023;量数据的数据仓库工具,而不是数据库工具。Hive核心技术?#27493;?#21442;见我的博客 https://blog.csdn.net/Peter_Changyb/article/details/81977665

                        2.2 安装配置Hive

                        2.3 使用Hive

                        2.4 Hive核心原理

                        2.5 Hive的基本命令:

                        创建、删除表;加载数据?#22870;恚?#19979;载Hive表的数据,需要你掌握如下技能:

                        * MapReduce的原理;

                        * HDFS读写数据的流程;

                        * 学会查看日志解决问题;

                        * 会SELECT、WHERE、GROUP BY等SQL语句;

                        * Hive SQL转换成MapReduce的关键流程;

                        * Hive中常见的语句:创建表、删除表、往表中加载数据、?#26234;?#23558;表中数据下载?#22870;?#22320;;

                        第三单元:离线迁移

                        3.1 HDFS PUT操作

                        put命令在?#23548;?#29615;境中也比较常用,通常配合shell、python等脚本语言?#35789;?#29992;。

                        3.2 HDFS API调用

                        HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。?#23548;?#29615;境中一般自?#33322;?#23569;编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。

                        3.3 Sqoop迁移工具

                        Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库,Oracle、MySQL、SQLServer等之间进行数据交换的开源框架。就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。自己下载?#22242;?#32622;Sqoop。了解Sqoop常用的配置参数和方法。使用Sqoop完成从MySQL同步数据到HDFS;使用Sqoop完成从MySQL同步数据到Hive表;如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。Sqoop导入Hbase核心代码见我的技术博客https://blog.csdn.net/Peter_Changyb/article/details/82557741

                        3.4 Flume分布式采集框架

                        Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所?#36816;?#24182;不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。下载?#22242;?#32622;Flume。使用Flume监控一个不?#29486;?#21152;数据的文件,并将数据传输到HDFS;Flume的配置和使用较为复杂,如果你?#25381;?#36275;够的兴趣和耐心,可以先跳过Flume。核心技术参见我的技术博客https://blog.csdn.net/Peter_Changyb/article/details/81213997

                        第四单元:离线同步

                        Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?#31185;?#23454;,此处的方法和第三章基本一致的。

                        4.1 HDFS GET命令

                        把HDFS上的文件GET?#22870;?#22320;。

                        4.2 HDFS API

                        4.3 Sqoop

                        使用Sqoop完成将HDFS上的文件同步到MySQL;使用Sqoop完成将Hive表中的数据同步到MySQL。

                        4.4 DataX

                        DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。之所以介绍这个,是因为我们公司目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,非常好用。现在DataX已经是3.0版本,支持很多数据?#30784;ataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。三个核心模块要理解。Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

                        第五单元:实时计算

                        Spark对MapReduce做了大量的改进和优化,主要包括以下个方面:

                        1)磁盘I/O的读写优化:

                        中间结果缓存在内存中?#26680;?#30528;实时大数据应用越来越多,Hadoop作为离线的高吞吐、低响应框架已不能满足这类需求。Hadoop MapReduce的map端将中间输出和结果存储在磁盘中,reduce端?#20013;?#35201;从磁盘读写中间结果,从而造成磁盘I/O成为瓶颈。Spark则允许将map端的中间输出和结果缓存在内存中,从而使得reduce端在拉取中间结果?#21271;?#20813;了大量的磁盘I/O?#25381;?#29992;程序上传的资源文件缓存在Driver本地文件服务的内存中:Hadoop YARN中的ApplicationMaster申请到Container后,具体任务需要利用NodeManager从HDFS的不同节点下载任务所需的资源(如Jar包),增加了磁盘I/O。Spark则将应用程序上传的资源文件缓存在Driver本地文件服务的内存中,当Executor执行任务时直接从Driver的内存中读取,从而节省了大量的磁盘I/O。

                        2)任务的并行处理优化:

                        由于将中间结果写到磁盘与从磁盘读取中间结果属于不同的?#26041;冢琀adoop将它们简单地通过串行执行?#35859;?#36215;来。而Spark则把不同的?#26041;?#25277;象为Stage,允许多个Stage既可?#28304;?#34892;执行,又可以并行执行。

                        3)任务调度中的资源过滤:

                        当Stage中某个?#26234;?#30340;Task执行失败后,会重新?#28304;薙tage调度,但在重新调度的时候会过滤已经执行成功的?#26234;?#20219;务,所以不会造成重复计算和资源浪费。

                        4)Shuffle排序:

                        Hadoop MapReduce在Shuffle之前会将中间结果按key的hash值和key值大小进?#36763;?#23618;排序,确保?#26234;?#20869;部的有序性。而Spark则可以根据不同场?#25226;?#25321;在map端排序还是reduce端排序。

                        5)内存管理优化:

                        Spark将内存分为堆上的存储内存、堆外的存储内存、堆上的执行内存、堆外的执行内存4个部分。Spark既提供了执行内存和存储内存之间固定边界的实现,又提供了执行内存和存储内存之间“软”边界的实现。Spark默认使用“软”边界的实现,执行内存或存储内存中的?#25105;?#19968;方在资源不足时都可以借用另一方的内存,最大限度地提高资源的利用率,减少对资源的浪费。Spark由于对内存使用的偏好,内存资源的多寡和使用率就显得?#20219;?#37325;要,为此Spark的内存管理器提供的Tungsten实现了一种与操作系统的内存Page非常相似的数据结构,用于直接操作操作系统内存,节省了创建的Java对象在堆中占用的内存,使得Spark对内存的使用效率更加接近硬件。Spark会给每个Task分配一个配套的任务内存管理器,对Task粒度的内存进行管理。Task的内存可?#21592;?#22810;个内部的消费者消费,任务内存管理器对每个消费者进行Task内存的分配与管理,因此Spark对内存有着更细粒度的管理。核心技术参考我的博客https://blog.csdn.net/Peter_Changyb/article/details/81904066

                        5.1 关于Spark和SparkSQL

                        什么是Spark,什么是SparkSQL。Spark有的核心概念及名词解释。SparkSQL和Spark是什么关?#25285;琒parkSQL和Hive是什么关系。SparkSQL为什么比Hive跑的快。

                        5.2 如何部署和运行SparkSQL

                        Spark有哪些部署模式?如何在Yarn上运行SparkSQL?使用SparkSQL查询Hive中的表。Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。关于Spark和SparkSQL,如果你认真完成了上面的学习和?#23548;?#27492;时,你的”大数据平台”应该是这样的。

                        第六单元:实时交换

                        在?#23548;?#19994;务场景下,特别是对于一些监控日志,想?#35789;?#30340;从日志中了解一些指标,这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

                        6.1 关于Kafka

                        什么是Kafka?Kafka的核心概念及名词解释。

                        6.2 如何部署和使用Kafka

                        使用单机部署Kafka,并成功运行自带的生产者和消费者例子。使用Java程序自己编写并运行生产者和消费者程序。Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

                        这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。

                        * 为什么Spark比MapReduce快。

                        * 使用SparkSQL代替Hive,更快的运行SQL。

                        * 使用Kafka完成数据的一?#38382;?#38598;,多次消费架构。

                        * 自己可以写程序完成Kafka的生产者和消费者。

                        第七单元:实时调度

                        不仅仅是分析任务,数据采集、数据交换同样是一个个的任务。这些任务中,有的是定时触发,有点则需要依赖其他任务?#21019;?#21457;。当平台中有几百上千个任务需要维护和运行时候,仅仅靠crontab?#23545;?#19981;够了,这?#21271;?#38656;要一个调度监控系统来完成这件事。调度监控系统是整个数据平台的中枢系?#24120;?#31867;似于AppMaster,负责分配和监控任务。

                        7.1 Apache Oozie

                        1. Oozie是什么?有哪些功能?当你的系统引入了spark或者hadoop?#38498;螅?#22522;于Spark和Hadoop已经做了一些任务,比如一连串的Map Reduce任务,但是他们之间彼此右前后依赖的顺序,因?#22235;?#24517;须要等一个任务执行成功后,再手动执行第二个任务。

                        * Oozie是管理Hadoop作业的工作流调度系统

                        * Oozie的工作流是一系列的操作图,Oozie协调作业是通过时间(频率)以及有效数据触发当前的Oozie工作流程

                        * Oozie是针对Hadoop开发的开源工作流引擎,专门针对大规模复杂工作流程和数据管道设计

                        * Oozie围绕两个核心:工作流和协调器,前者定义任务的拓扑和执?#26032;?#36753;,后者负责工作流的依赖和触发。

                        2. Oozie可以调度哪些类型的任务(程序)?

                        3. Oozie可以支持哪些任务触发方式?

                        4.  安装配置Oozie。

                        7.2 其他开源的任务调度系统

                        Azkaban,light-task-scheduler,Zeus,等等。另外,我这边是之前单独开发的任务调度与监控系统。

                        第八单元:实时处理

                        在介绍Kafka的时候提到了一些需要实时指标的业务场景,实时基?#31350;?#20197;分为绝对实时和准实时,绝对实时的延迟要求一般在毫秒级,准实时的延迟要求一般在秒、?#31181;?#32423;。对于需要绝对实时的业务场景,用的比较多的是Storm,对于其他准实时的业务场景,可以是Storm,也可以是Spark Streaming。

                        8.1 Storm

                        1. 什么是Storm?有哪些可能的应用场景?

                        2. Storm由哪些核心组件构成,各自担?#38382;?#20040;角色?

                        3. Storm的简单安装和部署。

                        4. 案例实战参见我的技术博客https://blog.csdn.net/Peter_Changyb/article/details/82380603

                        8.2 Spark Streaming

                        1. 什么是Spark Streaming,它和Spark是什么关?#25285;?/p>

                        2. Spark Streaming和Storm比较,各有什么优缺点?

                        3. 使用Kafka + Spark Streaming,完成实时计算的Demo程序。

                        第九单元:实时存储

                        HBase属于存储层,是一个高可靠性、高性能、面向?#23567;?#21487;伸缩的分布式存储系?#24120;?#21487;在廉价PC Server上搭建起大规模结构化存储集群。Hbase依托于很多框架和工具。其中,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理简单快捷。Sqoop为HBase提供了?#22870;?#30340;RDBMS数据导入功能,使得传统数据库数据向HBase中迁移更灵活。

                        HBase的 Client客户端借助HBase的RPC机制与HMaster和HRegionServer进行通信,Zookeeper Quorum中除了存储了-ROOT-表的地址和HMaster的地址,HRegionServer也注册到Zookeeper中,使得HMaster可?#36816;?#26102;感知到各个HRegionServer的存活状态。HMaster解决了单点?#25910;?#38382;题,HBase中可?#20113;?#21160;多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行,HMaster在功能上主要负责Table和Region的管理工作,包括管理用户对Table的增、删、改、查操作,管理HRegionServer的负载均衡,调整Region分布,在Region Split后负责新Region的分配,在HRegionServer停机后负责失效HRegionServer 上的Regions迁移。

                        HRegionServer职责是负责响应用户I/O请求,向HDFS文件系统中读写数据,属于HBase中最核心的模块。它内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组成。每个HStore对应了Table中的一个Column Family的存储,每个Column Family就是一个集中的存储单元,设计师最好将具备共同IO特性的column放在一个Column Family中,一般来?#25285;?#25105;们只设置一个Column Family。HStore存储是HBase存储的核心,其中由两部分组成,一是MemStore,二是StoreFiles。MemStore是Sorted Memory Buffer,用户写入的数据首先会放入MemStore,当MemStore满了?#38498;?#20250;Flush成一个StoreFile(底层实现是HFile),当StoreFile文件数量增长到一定阈?#25285;?#20250;触发Compact合并操作,将多个StoreFiles合并成一个StoreFile,合并过程中会进行版本合并和数据删除,所以HBase其实?#25381;性?#21152;数据,所有的更新和删除操作都是在后续的compact过程中进行的,这使得用户的写操作只要进入内存中就可以立即返回,保证了HBase I/O的高性能。

                        第十单元:智能分析

                        机器学习核心技术参见我的技术博客https://blog.csdn.net/Peter_Changyb/article/details/82347169。常用的机器学习解决的问题有三类:

                        * 分类问题:

                        包括二分类?#25237;?#20998;类,二分类就是解决了预测的问题,就像预测一封邮件是否垃圾邮件;多分类解决的是文本的分类;

                        * 聚类问题:

                        从用户搜索过的关键词,对用户进行大概的归类。

                        * 推荐问题:

                        根据用户的历史浏览和点击行为进行相关推荐。

                         经验分享

                        总之,对商用大数据平台而言,我们要考虑应用场景,用户规模和数据处理能力,以及未来3年的目标等。在应用场景的设计中,会考虑业务和技术的结合度量,业务的规模和流程设计。用户规模和数据处理能力,会考虑技术选型和架构设计。具体要考虑架构设计。架构中重要的核心指标:性能、可用性、伸缩性、扩展性的等。

                        一、性能

                        性能就是核心要素之一,具体如下:

                        * CDN加速

                        * 反向代理

                        * 分布?#20132;?#23384;

                        * 异步化:

                        通过分布式消息队列?#35789;?#29616;削峰的目的。通过业务配合技术来解决问题。

                        * 集?#28023;?/p>

                        采用集群也是服务虚拟化的一个体现。用?#21592;?#20813;单点问题,同时提供更加高可用,高性能的服务。

                        * 代码优化:

                        多线程中,如果是密集型计算,线程数不?#39034;?#36807;CPU核数。如果是IO处理,则线程数=[任务执行时间/(任务执行时间-IO等待时间)] * CPU核数。除此之外,我们应该将对象设计成无状态对象,多采用局部对象,适当将锁细化。进行资源复用。比如采用单例模式,比如采用连接池。合理设置JVM参数。

                        * 存储性能优化:

                        关系型数据库的索引采用B+树进行实现。而很多的nosql数据库则采用了LSM树进行存储。LSM在内存中保留最新增删改查的数据,直到内存无法放下,则与磁盘的下一级LSM树进行merge。所以对于写操作较多,而读操作更多的是查询最近写入数据的场景,其性能远高于b+树;采用HDFS结合map reduce进行海量数据存储和分析。其能自动进行并发访问和冗余备份,具有很高的可靠性。其等于是实现了RAID的功能。

                        * 数据访问接口优化:

                        数据库层其实是最脆弱的一层,一般在应用设计时在上游就需要把请求拦截掉,数据库层只承担“能力范围内”的?#26790;是?#27714;,所以,我们通过在服务层引入队列和缓存,让最底层的数据库高枕无忧。

                        二、高可用性

                        衡量一个系统架构设计是否满足高可用的目标,就是假设系统中任?#25105;?#21488;或者多台服务器宕机时,以及出?#25351;?#31181;不可预期的问题时,系统整体是否依然可用。一般就三个手段、冗余、集群化、分布式。高可用的主要手段就是冗余,应用部署在多台服务器上同时提供服务,数据存储在多台服务器上相互备份。安全服务是指计算机网络提供的安全防护措施,包括认证服务、访问控制、数据机密性服务、数据完整性服务和不可否认服务。特定的安全机制是用?#35789;?#26045;安全服务的机制,包括?#29992;?#26426;制、数据签名机制、访问控制机制、数据完整性机制、认证交换机制、流?#21051;?#20805;机制、路由控制机制和公证机制。普遍性的安全机制不是为任何特定的服务而特设的,属于安全管理方面,分为可信功能度、安全标记、事件检测、安全审计跟踪和安全?#25351;础?/p>

                        三、高扩展性

                        扩展性指对现有系统影响最小的情况下,系统功能可?#20013;?#25193;展或提升的能力。表现在系统基础设施稳定不需要经常变更,应用之间较少依赖和耦合,当系统增加新功能时,不需要对现有系统的结构和代码进行修改。扩展性依赖于前期良好的架构设计。合理业务逻辑抽象,水平/垂?#40763;?#21106;分布式化等等。可扩展架构的主要手段是事件驱动架构和分布式服务。事件驱动通常利用消息队列实现,通过这种方式将消息生产和处理逻辑?#25351;?#24320;。服务器服务则是将业务和可复用服务分离开来,通过分布式服务框架调用。新增加产品可用通过调用可复用的服务?#35789;?#29616;自身的业务逻辑,而对现有产品?#25381;?#20219;何影响。

                        四、高伸缩性

                        服务尽?#23458;?#26500;。DB、cache在考虑分布式时尽?#21051;?#21069;设计好扩展方案。也可以采用一些主流的?#36816;?#24179;伸缩支持较好的nosql、memcached、hbase等。

                        作者:常耀斌   来源:移动labs

                          免责声明:本文仅代表作者个人观点,与C114通信网无关。其原创性以及文中?#29575;?#25991;字和内容未经本站证实,?#21592;?#25991;以及其中全部或者部分内容、文字的真实性、完整性、及时?#21592;?#31449;不作任何保证或?#20449;担?#35831;读者仅作参考,并请自行核实相关内容。

                        给作者点赞

                        轻松参与

                        0VS0

                        表达立场

                        写的不太好

                        合作伙伴: 一诺 华工

                        Copyright©1999-2019 c114 All Rights Reserved
                        上海荧通网络信息技术有限公司版权所有
                        南方广告业务部: 021-54451141,54451142 E-mail:[email protected]
                        北方广告业务部: 010-63533177,63533977 E-mail:[email protected]
                        编辑部联系: 021-54451141,54451142 E-mail:[email protected]
                        服务热线: 021-54451141,54451142
                        沪ICP备12002291号
                        十一选五玩法及奖金 英超宝贝全裸视频 北京赛车pk拾下载 永辉娱乐城百家乐 浙江快乐12买大的说明书 海南彩票网 腾讯分分彩五星技巧 大神北京28官网预测 十一运夺金实战技巧1胆n拖妙投任选3 华东15选5走势图浙江 品特轩 肖中平特 幸运28是全国性彩票吗 鲁尼英超总进球 江苏时时彩计划软件 7星彩直播在线 中国福利彩票深圳风采单式