`
wangmuming1122
  • 浏览: 11244 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

《分布式服务框架原理与实践》 试读

阅读更多

                                         《分布式服务框架原理与实践》 试读

 

       关于分布式的服务框架,了解过一些流行框架的结构。(如Hadoop,spark)简单的说一下自己通俗的看法。

 

       为什么会出现分布式框架,相信了解IT和大数据方便知识的同学都或多或少的知道一些。随着时代的发展,各行各业需要处理的数据都是T级别的。计算量和数据量的爆炸,比如要你统计10个1MB文本文件里的相异单词数目,很简单,一个一个读出来计算就可以实现,10个文本文件最多10MB,可以完全读到单机(普通个人计算机)的内存里。或者让你对一组数据进行很简单的几次四则运算,这些计算和任务在普通机器上都能够很流畅运行。但是,换一种情况,如果要你读取100000个文件的相异单词数目,那么单单总文件大小就有100GB,普通机器在这个任务上就遇到两个瓶颈,第一个是从外存储器到内存的,一个是从内存到CPU的,这样的任务在一般机器上无法再可接受的时间内完成。另一个情况,你要对一组数据(数据量不是很大)进行数千亿(极大量)的迭代复杂运算,单单靠一个普通机器的CPU和内存也不能在可接受的时间内完成。所以人们为了解决这些情况,才推出了分布式框架,为了更好的处理数据。

 

        分布式框架如何解决T级别以上的数据的运算,简单的说就是通过纵向和横向的并行实现的。如果1000台机器(节点)同时处理这个任务,每台机器只会去处理10个文件了,这个道理是很简单易懂的,这就是横向上的并行。而纵向上的并行主要是靠神马建立缓冲池,分解任务之类实现的,道理很简单,为了达到最大效率,就要让CPU何内存在任何时候都最大发挥,一般的方法可能会出现一些时候IO空闲,运算负载和一些时候运算空闲,IO负载的问题,纵向的优化就是要让IO和运算任何时候都不空闲。

 

        分布式框架解决的基本核心问题:

1.对于实际任务来说,横向的并行往往不是把数据文件分成若干份运算那么简单。

 

2.分布式要解决的问题往往是可以线性分割的。

 

3.现在分布式解决的主要问题其实还是对于大数据量的解决。

 

     所以,分布式服务框架都会且不仅限于实现下列功能:

      微服务发布(http/rpc)

      服务调用代理及客户端软负载

      基于Token的安全认证框架

      服务治理(服务注册/管理/配置推送等)

      服务监控(调用链分析)

      测试平台

 

      其中,开源的有阿里系的dubbo。Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。具体参考下面的这几篇文章:

     http://shiyanjun.cn/archives/1075.html

     http://shiyanjun.cn/archives/325.html

 

         本书《分布式服务框架:原理与实践》作者具有丰富的分布式服务框架、平台中间件的架构设计和实践经验。其依托工作实践,从分布式服务框架的架构设计原理到实践经验总结,涵盖了服务化架构演进、订阅发布、路由策略、集群容错和服务治理等多个专题,全方位剖析服务框架的设计原则和原理,结合大量实践案例与读者分享作者对分布式服务框架设计和运维的体会。同时,对基于Docker部署微服务以及基于微服务架构开发、部署和运维业务系统进行了详细介绍。有兴趣的读者可以试读下,它会给自己带去不一样的收获。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics