一、SpringCloud(微服务、分布式)

SpringCloud

微服务理论

https://www.martinfowler.com/articles/microservices.html 微服务microservices

http://blog.cuicc.com/blog/2015/07/22/microservices/

In short(简言之), the microservice architectural style 【架构风格】[1] is an approach to developing a single application as a suite of small services【独立应用变成一套小服务】, each running in its own process and communicating with lightweight(轻量级沟通) mechanisms(每一个都运行在自己的进程内(容器)), often an HTTP resource API(用HTTP,将功能写成能接受请求). These services are built around business capabilities (独立业务能力)and independently deployable by fully automated deployment machinery(应该自动化独立部署). There is a bare minimum of centralized management of these services(应该有一个能管理这些服务的中心), which may be written in different programming languages (独立开发语言)and use different data storage technologies(独立的数据存储).

分布式概念

什么是分布式

《分布式系统原理与范型》定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”。

分布式系统(distributed system)是建立在网络之上的软件系统。

分布式与集群的关系

集群指的是将几台服务器集中在一起,实现同一业务。

分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。

软件架构演变

一、SpringCloud(微服务、分布式) 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键 一、SpringCloud(微服务、分布式) 流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键 一、SpringCloud(微服务、分布式)

一、SpringCloud(微服务、分布式)

熔断

某个服务频繁超时,直接将其短路,快速返回mock(模拟/虚拟)值

一、SpringCloud(微服务、分布式)

API网关

API网关要做很多工作,它作为一个系统的后端总入口,承载着所有服务的组合路由转换等工作,除此之外,我们一般也会把安全,限流,缓存,日志,监控,重试,熔断等放到 API 网关来做

服务跟踪

追踪服务的调用链,记录整个系统执行请求过程。如:请求响应时间,判断链中的哪些服务属于慢服务(可能存在问题,需要改善)。

弹性云

Elastic Compute Service(ECS)弹性计算服务

动态扩容,压榨服务器闲时能力

例如:双11,618,高峰时多配置些服务器,平时减少多余的服务器配置(用于其他服务应用),避免资源浪费

SpringCloud背景

背景介绍

微服务架构

一、SpringCloud(微服务、分布式)

关于SpringBoot和SpringCloud版本

SpringCloud版本选择

SpringBoot2.3.6版和SpringCloud Hoxton.SR9版

SpringCloud Alibaba 2.2.6

Springboot版本选择

git源码地址:

https://github.com/spring-projects/spring-boot/releases/

SpringBoot2.0新特性:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes

通过上面官网发现,Boot官方强烈建议你升级到2.X以上版本

一、SpringCloud(微服务、分布式)

SpringCloud版本选择

  • git源码地址: https://github.com/spring-projects/spring-cloud/wiki
  • 官网: https://spring.io/projects/spring-cloud

官网看Cloud版本

  • Cloud命名规则

    Spring Cloud采用了英国伦敦地铁站的名称来命名,并由地铁站名称字母A-Z依次类推的形式来发布迭代版本。

    Spring Cloud 是一个由许多子项目组成的综合项目,各子项目有不同的发布节奏。为了管理SpringCloud与各子项目的版本依赖关系,发布了一个清单,其中包括了某个SpringCloud版本对应的子项目版本。为了避免SpringCloud版本号与子项目版本号混淆,SpringCloud版本采用了名称而非版本号的命名,这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来应对版本时间顺序。例如Angel是第一个版本,Brixton是第二个版本。当SpringCloud的发布内容积累到临界点或者一个重大BUG被解决后,会发布一个”service releases”版本,简称SRX版本,比如Greenwich.SR2就是SpringCloud发布的Greenwich版本的第二个SRX版本。

  • SpringCloud(截至2021.9.28)

一、SpringCloud(微服务、分布式)

SpringCloud和Springboot之间的依赖关系

https://docs.spring.io/spring-cloud/docs/Hoxton.SR9/reference/html/

一、SpringCloud(微服务、分布式)

SpringCloud(版本)

  • cloud
    • Hoxton.SR9
    • boot
      • 2.3.6.RELEASE
    • cloud Alibaba
      • 2.2.6.RELEASE
    • java
      • JAVA8
    • maven
      • 3.5及以上
    • mysql
      • 5.7及以上

微服务架构编码构建-IDEA新建project工作空间

微服务cloud整体聚合父工程Project

New Project

一、SpringCloud(微服务、分布式)

Maven选版本

一、SpringCloud(微服务、分布式)

字符编码

一、SpringCloud(微服务、分布式)

java编译版本

一、SpringCloud(微服务、分布式)

父工程POM

来源:aqr-lmy

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年11月1日
下一篇 2022年11月1日

相关推荐