zoukankan      html  css  js  c++  java
  • 1、SpringCloud概述

    集中式与分布式系统

    集中式系统: 集中式系统也叫单体应用,就是把所有的程序、功能、模块都集中到一个项目中, 部署在一台服务器上,从而对外提供服务;

    分布式系统: 分布式系统就是把所有的程序、功能拆分成不同的子系统,部署在多台不同的服 务器上,这些子系统相互协作共同对外提供服务,而对用户而言他并不知道后台 是多个子系统和多台服务器在提供服务,在使用上和集中式系统一样;

    系统变化过程

    产品或者网站初期,通常功能较少,用户不多,所以一般按照单体应用进行 设计和开发,按照经典的MVC三层架构设计;

    随着业务发展,功能的增加,访问用户增多,采用集中式系统进行开发不再适用,在这种情况下,集中式系统就会逐步变得非常庞大,一个系统的开发、测试、上线都会造成很麻烦,比如代码冲突,代码重复,逻辑错综混乱,代码逻辑复杂度增加,响应需求速度降低,隐藏风险增大; 所以需要按照业务维度进行应用拆分,采用分布式开发,每个应用专职于做某一些方面的事情,比如将一个集中式系统拆分为用户服务、订单服务、产品服务、 交易服务等,各个应用服务之间通过相互调用完成某一项业务功能。

    微服务与分布式

    分布式强调系统的拆分,微服务也是强调系统的拆分,微服务架构属于分布式架 构的范畴;

    微服务是系统架构上的一种设计风格, 它的主旨是将一个原本独立 的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之 间通过基于HTTP的 RESTful API进行通信协作

    拆分后的每一个小型服务都围绕着系统中的某一项业务功能进行构建, 并且 每个服务都是一个独立的项目,可以进行独立的测试、开发和部署等;

    由于各个独立的服务之间使用的是基于 HTTP 的 JSON 作为数据通信协作的基础,所以这些微服务可以使用不同的语言来开发;

    微服务架构的优缺点

    优点

    1、微服务架构是将系统中的不同功能模块拆分成多个不同的服务,这些服务进行独立地开发与部署,每个服务都运行在自己的进程内,这样每个服务的更新都不会影响其他服务的运行;
    2、由于每个服务是独立部署的,可以更准确地监控每个服务的资源消耗情况,进行性能容量的评估,通过压力测试,也很容易发现各个服务间的性能瓶颈所在;
    3、由于每个服务都是独立开发,项目的开发也比较方便,减少代码的冲突、代码重复,逻辑处理流程更加清晰,后续的维护与扩展更加容易;
    4、微服务可以使用不同的编程语言进行开发;

    缺点

    1、微服务架构增加了系统维护、部署的难度,导致一些功能模块或代码无法复用;
    2、随着系统规模的日渐增长,微服务在一定程度上也会导致系统变得越来越复杂,增加了集成测试的复杂度;
    3、随着微服务的增多,数据的一致性问题,服务之间的通信成本等都凸显了出来;

    Spring Cloud

    1、Spring Cloud是一个一站式的开发分布式系统的框架,为开发者提供了一系列的构建分布式系统的工具集;
    2、Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具 (比如:配置管理,服务发现,断路器,智能路由、微代理、控制总线、全局锁、 决策竞选、分布式会话和集群状态管理等);
    3、开发分布式系统都需要解决一系列共同关心的问题,而使用 Spring Cloud 可以快速地实现这些分布式开发共同关心的问题,并能方便地在任何分布式环境中部署与运行。
    4、Spring Cloud这个一站式地分布式开发框架,被近年来流行的“微服务”架构所大力推崇,成为目前进行微服务架构的优先选择工具;
    5、Spring Cloud 基于 Spring Boot框架构建微服务架构;

    Spring Cloud并不是从0开始开发一整套微服务解决方案,而是集成各个开源 软件,构成一整套的微服务解决方案,这其中有Netflix公司的开源产品;

  • 相关阅读:
    提示“Resource temporarily unavailable”的原因及解决办法
    TQ2440与西门子S7-200 PLC自由口通信实现过程中问题总结
    SQL与SQL Server
    JavaScript:事件对象Event和冒泡
    JavaScript动画:offset和匀速动画详解(含轮播图的实现)
    JavaScript基础:BOM的常见内置方法和内置对象
    JavaScript实现Tab栏切换
    JavaScript基础:DOM操作详解
    JavaScript语法基础:数组的常用方法详解
    JavaScript语法详解:if语句&for循环&函数
  • 原文地址:https://www.cnblogs.com/Ryuichi/p/13407606.html
Copyright © 2011-2022 走看看