SpringCloud 学习笔记1--网站架构演变过程

SpringCloud 中文文档:https://www.springcloud.cc/spring-cloud-dalston.htm

1、网站架构演变过程:传统架构(单点应用)—> 分布式架构(以项目进行拆分)—> SOA架构(面向服务架构)—> 微服务架构

(1)传统架构其实就是SSH架构或者SSM架构,属于单点应用,把整个业务模块都会在一个项目中进行开发,

          分为mvc架构,会拆分控制层、业务逻辑层、数据库访问层。

  缺点:一般只适合于一个人或者小团队开发。耦合度太高,一旦某个模块导致服务不可用,可能会影响到整个项目。

 (2)分布式架构基于传统架构演变过来的,将传统的项目以项目模块进行拆分成n多个会员项目,每个项目中都有自己的独立的数据库、独立的redis等(各个项目中通过RPC远程通讯进行调用)。

    如:有100个开发人员,都在同一个项目进行开发,可能产生的问题:代码冲突、任务不好分配、容易起冲突问题;

    分布式架构与传统架构区别:项目粒度分的更加细致,慢慢开始适合于互联网公司开发,耦合度降低。

(3)SOA架构是基于分布式架构演变过来的。它代表面向服务架构,俗称服务化。可以理解为面向与业务逻辑层开发,将共同的             业务代码进行抽取出来,提供给其他接口进行调用。服务与服务之间通讯采用rpc远程调用技术。

  服务概念:将共同的业务逻辑进行拆分,拆分成独立的项目进行部署,没有视图层,服务概念理解成接口。

  RPC远程调用技术框架:httpclient、springcloud、dubbo、grpc等,核心底层socket技术或者netty实现。

  SOA架构特点:底层基于SOAP或者ESB(消息总线)实现,底层使用HTTP或Https协议 + 重量级xml数据交换格式(后续以           json格式替代xml格式)进行通讯。

  WebService底层是采用http协议+xml(soap),RPC是两个或者多个应用实现远程调用。SOA架构是面向与服务架构,soap是简单对象协议http+xml混合物。

  SOA架构缺点:

       1)依赖与中心化服务发现机制;

       2)SOA架构采用soap协议,xml传输协议比较占用宽带,整个xml报文中有非常大的冗余数据,所以在微服务架构中以json轻量级方式替代xml报文传输;

       3)服务管理非常混乱,缺少服务管理和治理设施不完善。

(4)微服务架构与SOA架构的区别:

      微服务rpc远程调用框架最核心的是:服务治理----注册中心。

        1)微服务架构基于SOA架构演变过来,继承SOA架构优点,在微服务架构中去除SOA架构中的ESB消息总线,采用restful风格提供API,也就是http协议➕json格式进行传输。

        2)微服务架构比SOA架构粒度会更加精细,让专业的人做专业的事(更加专注)。目的是提高效率,每个服务与服务之间是互不影响的,每个服务必须独立部署(docker、独立数据库、独立redis),微服务架构更加体现轻量级。

       3)SOA架构中可能数据存储会发生共享,微服务强调每个服务都是单独数据库,保证每个服务和服务之间互不影响。

       4)项目体现特征:微服务架构比SOA架构更加适合与互联网公司敏捷开发、快速迭代版本,因为粒度更细。

     

2、为什么要使用SpringCloud

   目前来说,是一套比较完整的微服务解决方案框架,不像其他rpc远程调用框架,只解决某个微服务中的问题。可以把springcloud理解微一条龙微服务解决访问。

服务治理:阿里巴巴开源的dubbo和当当网在其基础上扩展的dubbox、Eureka、apache的Consul。

分布式配置中心:百度的disconf、Netfix的Archaius、360的QConf、SpringCloud、携程的阿波罗等。

分布式任务:xxl-job、elastic-job、springcloud的task等。

服务跟踪:京东的hyra、springcloud的sleuth等

微服务中,分布式配置中心、分布式锁、分布式跟踪、分布式服务治理、分布式任务调度平台。

发布了25 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gonghua0502/article/details/103234707