• SpringCloudAlibaba学习(一):概述


    1、单体架构

    将项目所有功能模块全部一起打成一个 jar 或 war,然后部署运行

    扩容伸缩方式:
    运行多个容器实例,再通过 nginx 进行负载均衡

    image

    优点:
    1、部署简单,直接一个 jar 部署
    2、技术单一,一般一套技术栈就可以完成开发

    缺点:
    1、系统启动慢,运行时进程包含了所有的业务模块,所以系统启动的时间会比较长
    2、系统错误隔离性差、可用性差,一个模块的错误,会导致整个系统的崩溃
    3、可伸缩性差,只能在整个项目级别扩容
    4、线上问题修复周期长,需要整个项目的重新发布
    5、跨语言差,整个项目需要使用统一的开发语言
    6、安全性差,所有研发都有所有代码的权限

    2、微服务架构

    按照业务对项目进行拆分,拆分成高内聚的小的服务模块,每个服务单独开发、部署、运行,多个服务通过网络通信(HTTP、TCP等)完成业务功能。

    微服务特点:
    1、微服务是一种架构思想
    2、微服务架构是一系列小服务的组合
    3、任何一个微服务,都是一个独立的进程,可以独立开发、独立部署、独立维护
    4、微服务之间通过网络通信(HTTP、TCP等)
    5、服务粒度按照业务划分
    6、去中心化管理,不同业务模块可以使用不同的语言,可以根据业务的特点,使用合适的技术栈完成

    缺点:

    1. 服务太多,导致服务间的依赖错中复杂,运维难度大,需要一套服务治理方案
    2. 微服务放大了分布式架构的系列问题
      • 分布式事务
      • 分布式锁
      • 服务注册发现
      • 服务不稳定、调用异常,影响其他微服务

    3、SpringCloud 与微服务

    • SpringCloud 是微服务架构的一套解决方案
    • SpringCloud 不是指单独的一个开发框架(如Dubbo、SpringBoot这种),而是一系列开源组件的集合体,基于 SpringBoot 集成这些组件,实现微服务架构下的服务治理、问题解决

    一般来说,SpringCloud 是指 SpringCloud-netflix,但由于 netflix 公司对相关微服务组件的闭源和停更,现在更多的使用 SpringCloud-alibaba 系列组件

    Spring Cloud官网:
    https://spring.io/projects/spring-cloud-alibaba

    学习大纲:
    image

  • 相关阅读:
    lhgdialog的传值问题
    jquery中lhgdialog插件(一)
    有关eclipse的内存溢出问题
    oracle数据库cmd导出数据和导入数据
    java replace方法
    jaspersoft中分组打印
    Android开发小技巧之根据position判断ListView是否在显示
    Android开发中Chronometer的用法
    [转][darkbaby]任天堂传——失落的泰坦王朝(下)
    [转][darkbaby]任天堂传——失落的泰坦王朝(中)
  • 原文地址:https://www.cnblogs.com/liuyiyuan/p/16421724.html
Copyright © 2020-2023  润新知