• SpringCloud的基本使用


    1、分布式架构和微服务的基本介绍

    随着互联网的发展,互联网企业的业务也在不断的飞速发展,进而导致系统的架构也在不断的发生着变化。总体来说,系统的架构大致经历了:单体应用架构—>垂直应用架构—>分布式架构—>SOA架构—>微服务架构的演变。

    • 单体应用架构

    在企业发展的初期,一般公司的网站流量都比较小,只需要一个应用,将所有的功能代码打包成一个服务,部署到服务器上就能支撑公司的业务。这样也能够减少开发、部署和维护的成本。比如,大家都很熟悉的电商系统,里面涉及的业务主要有:用户管理、商品管理、订单管理、支付管理、库存管理、物流管理等等模块,初期我们会将所有模块写到一个Web项目中,然后统一部署到一个Web服务器中。

    优点:架构简单,项目开发和维护成本低。所有项目模块部署到一起,对于小型项目来说,维护方便。

    缺点:耦合度高。所有模块耦合在一起,虽然对于小型项目来说,维护方便。但是,对于大型项目来说,却是不易开发和维护的。项目的各模块之前过于耦合,如果一旦有一个模块出现问题,则整个项目将不可用。无法针对某个具体模块来提升性能。无法对项目进行水平扩展。

    • 分布式架构

    根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。

    优点:降低服务耦合;有利于服务升级拓展。

    缺点:架构复杂,难度大。

    • 微服务架构

    微服务是一种经过良好架构设计的分布式架构方案。在微服务架构下,我们将一个大的项目拆分为一个个小的可以独立部署的微服务,每个微服务都有自己的数据库。

    微服务架构特征:

    • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
    • 面向服务:微服务对外暴露业务接口
    • 自治:团队独立、技术独立、数据独立、部署独立
    • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

    优点:服务彻底拆分,各服务独立打包、独立部署和独立升级。每个微服务负责的业务比较清晰,利于后期扩展和维护。微服务之间可以采用REST和RPC协议进行通信。

    缺点:架构非常复杂,运维、监控、部署难度提高。开发的成本比较高。涉及到各服务的容错性问题。涉及到数据的一致性问题。涉及到分布式事务问题

    1.1、分布式和微服务架构的区别

    微服务是一种经过良好架构设计的分布式架构方案。

    分布式:分散压力。微服务:分散能力。分布式服务架构强调的是服务化以及服务的分散化,而微服务则更强调服务的专业化和精细分工。从实践的角度来看,微服务架构通常是分布式服务架构,反之则未必成立。所以,选择微服务通常意味着同时也需要解决分布式架构的各种难题。

    微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,它也可以是同一个服务器。

    分布式是否属于微服务?不一定,如果一个很大应用,拆分成三个应用,但还是很庞大,虽然分布式了,但不是微服务。微服务核心要素是微小。微服务架构是分布式服务架构的子集。微服务架构通过更细粒度的服务切分,使得整个系统的迭代速度并行程度更高,但是运维的复杂度和性能会随着服务的粒度更细而增加。微服务重在解耦合,使每个模块都独立。分布式重在资源共享与加快计算机计算速度。

    1.2、微服务架构

    1.2.1、Dubbo

    Dubbo框架是由阿里巴巴开发的开源式的分布式服务化治理框架,它会通过RPC请求方式访问。Dubbo是在阿里巴巴的电商平台中逐渐探索演进所形成的,经历过复杂业务的高并发挑战。

    1.2.2、Spring Cloud

    Spring Cloud不是一个单独框架,它是一整个系列的框架合计,它是基于HTTP(s)的RETS服务构建服务体系的。Spring Cloud能够帮助架构师构建一整套完整的微服务架构技术生态链。

    SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。 SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验:

    springcloud 与 springboot的版本兼容关系:

    1.2.3、微服务架构对比

  • 相关阅读:
    对scrapy经典框架爬虫原理的理解
    js的处理技巧
    网站登陆的两种方法
    scrapy批量下载图片
    [转]解决scrapy下载图片时相对路径转绝对路径的问题
    scrapy爬取西刺网站ip
    logging的使用方法
    scrapy中的response
    scrapy中的request
    scrapy.Spider的属性和方法
  • 原文地址:https://www.cnblogs.com/wenxuehai/p/16156219.html
Copyright © 2020-2023  润新知