SpringCloud——微服务、SpringCloud介绍01

微服务

微服务简介

微服务(不是一个框架 而是一种架构思想),是著名的 oo (面向对象, Object Oriented )专家 Martin Fowler 提出来的,它是用来描述将软件应用程序设计为独立部署的服务的种特殊方式。
微服务架构的系统是个分布式系统,按业务领域划分为独立的服务单元,有自动化运维、容错、快速演进的特点,它能够解决传统单体架构系统的痛点,同时也能满足越来越复杂的业务需求。

单体架构不足

  1. 业务越来越复杂,单体应用的代码量越来越大,代码的可读性、可维护性和可扩展性下降,新人接手代码所需的时间成倍增加,业务扩展带来的代价越来越大。
  2. 随着用户越来越多,程序承受的并发越来越高,单体应用的并发能力有限。
  3. 测试的难度越来越大,单体应用的业务都在同个程序中,随着业务的扩张、复杂度的增加,单体应用修改业务或者增加业务或许会给其他业务带来定的影响,导致测试难度增加。

微服务概念

就是将一个大的应用,拆分成多个小的模块,每个模块都有自己的功能和职责,每个模块可以进行交互,这就是微服务。
对于微服务,业界没有严格统一的定义,但是作为“微服务”这名词的发明人,Martin Fowler对微服务的定义似乎更具有权威性和指导意义,他的理解如下:
在这里插入图片描述

微服务的特点

  1. 按业务(功能)划分为一个独立运行的程序,即服务单元。
  2. 服务之间通过 HTTP 协议相互通信。 http 是一个万能的协议 (web 应用都支持的模式)
  3. 自动化部署。
  4. 可以用不同的编程语言。
  5. 可以用不同的存储技术。
  6. 服务集中化管理。
  7. 微服务是一个分布式系统。

微服务的自动化部署(CI /CD)(持续集成 持续交付)在这里插入图片描述

微服务的不足(正视它的不足)

  1. 微服务的复杂度
  2. 分布式事务问题
  3. 服务的划分(按照功能划分 还是按照组件来划分呢) 分工
  4. 服务的部署(不用自动化部署 自动化部署)

微服务架构的设计原则(项目起步搭建)

开闭原则 单一原则 6 大设计原则
有三大难题,那就是服务故障的传播性(熔断)、服务的划分和分布式事

SpringCloud

简介

在这里插入图片描述
正常各个模块之间访问需要访问ip端口,但是当模块比较多的时候,将会有大量的ip端口号,这不利于模块之间相互访问,也不利于前端对模块进行访问,而SpringCloud提供了很多组件来解决这个问题。
在这里插入图片描述目前有三家公司对SpringCloud进行支持。

  • Spring Cloud 的首要目标就是通过提供一系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统。

SpringCloud 版本对应关系【开发重点】

A B C D E F G H I(2020 版) Hoxton.SR12 2.3.12.RELEASE
https://start.spring.io/actuator/info
在这里插入图片描述
SA为稳定版,从H版本开始版本名以时间命名,注意SpringCloud的版本要与SpringBoot版本相对应,ailibaba也是同样。

在这里插入图片描述

SpringCloud 常用组件表 (管家)

服务的注册和发现。(eureka,nacos,consul)
服务的负载均衡。(ribbon,dubbo)
服务的相互调用。(openFeign,dubbo)
服务的容错。(hystrix,sentinel)
服务网关。(gateway,zuul)
服务配置的统一管理。(config-server,nacos,apollo)
服务消息总线。(bus)
服务安全组件。(security,Oauth2.0)
服务监控。(admin) (jvm)
链路追踪。(sleuth+zipkin)

总结

SpringCloud 就是微服务理念的一种具体落地实现方式,帮助微服务架构提供了必备的功能
目前开发中常用的落地实现有三种:
Dubbo+Zookeeper 半自动化的微服务实现架构 (别的管理没有)
SpringCloud Netflix 一站式微服务架构
SpringCloud Alibaba 新的一站式微服务架构
三大公司
Spring Netflix Alibaba

微服务架构风格图

在这里插入图片描述详细见pdf:file:///C:/Users/Vincent_lz/Desktop/%E6%88%90%E9%95%BF%E7%9B%AE%E6%A0%87/SpringCloud/%E5%8A%A8%E5%8A%9B%E8%8A%82%E7%82%B9SpringCloud+Alibaba/%E6%96%87%E6%A1%A3/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84.pdf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值