一、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)是建立在 络之上的软件系统。

分布式与集群的关系

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

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

软件架构演变

熔断

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

API 关

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

服务跟踪

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

弹性云

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

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

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

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版本选择

  • 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和Springboot之间的依赖关系

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

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

Maven选版本

字符编码

java编译版本

父工程POM

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

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

相关推荐