电商重构之微服务技术选型

Spring Boot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

现在目前的电商项目是SSM,用了两年多的springboot开发项目之后再接手这个项目一开始是有点不适应,各种不方便。我最残忍的是测试类,环境配置文件全都没有,每次都是全局替换然后都得每个地方认真检查好几遍,才敢发版。

SpringBoot 快速开发平台

项目地址:https://github.com/PineSong96/Pine_Web

这是刚开始接触springboot时候写的一个快速开发框架,里面的大部分的环境都已经配置好了,只需要修改一下数据库链接,然后创建表,直接就可以生成增删改查的代码包括前端的后台管理页面的模块,模板引擎很容易修改,可以根据自己的需求二次开发,此项目写完之后一直没有更新了,近期会重新迭代开发投入在微服务项目中使用

电商重构之微服务技术选型_第1张图片

Spring Cloud

官网:https://spring.io/projects/spring-cloud

Spring Cloud是一个基于Spring Boot实现的云原生应用开发工具,它为基于JVM的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

电商重构之微服务技术选型_第2张图片

Spring Cloud核心子项目

子项目孵化器地址: https://github.com/spring-cloud-incubator

核心组件的解决方案有很多可以看下图

电商重构之微服务技术选型_第3张图片

 

 

电商重构之微服务技术选型_第4张图片

Spring Cloud Neftflix 各种Netflix OSS组件集成,包括Eureka(服务注册与发现)、Hystrix(容错管理,实现断路器模式)、Ribbon(客户端负载均衡)、Feign(声明式服务调用组件)、Zuul(网关,提供智能路由、访问过滤等功能)等

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

文档地址: https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

这里我们选择的是Spring Cloud Alibaba很多人可能会问,有了spring cloud这个微服务的框架,为什么又要使用spring cloud alibaba这个框架了?最重要的原因在于spring cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装。然而Netflix的服务发现组件Eureka已经停止更新,而其他的众多组件预计会在明年(2020)停止维护。所以急需其他的一些替代产品,也就是Spring Cloud Alibaba,目前正处于蓬勃发展的态式。

电商重构之微服务技术选型_第5张图片

 

版本选择

Spring Boot

电商重构之微服务技术选型_第6张图片

2.3.1 CURRENT GA

· 2 代表主版本号

· 3 代表此版本号

· 1 代表bug修复版本

· GA :General Availability,正式版本,官方推荐使用此版本,在国外都是用GA来说明release版本的

另外还有

· Release:最终版本,Release不会以单词形式出现在软件封面上,取而代之的是符号(R)

· RC: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。

· M: 又叫里程碑版本,表示该版本较之前版本有功能上的重大更新。

· SNAPSHOT(优先使用Lv2): 快照版,可以稳定使用,且仍在继续改进版本。

 

Spring Cloud

电商重构之微服务技术选型_第7张图片

Hoxton SR6 CURRENT GA

前面后面都知道什么意思了,中间还有个SR是什么意思?

· SR:Service Release,SR1表示第1个正式版本,一般同时标注 GA:(GenerallyAvailable),表示稳定版本

另外还有

· M: MileStone,M1表示第1个里程碑版本,一般同时标注PRE,表示预览版版。

· RC: Release Candidate(候选版本)一般标注PRE表示预览版

Springcloud版本号和boot不一样了,不再是按照一惯的数字去看版本号,而是用常用了英国伦敦地铁站的名称来命名,设计的目的是为了更好的管理每个SpringCloud子项目的清单,避免自己的版本号与子项目的版本号混淆,我也不明白哪里能看的出来,不过有一个方法就是首字母越靠后表示版本号越大。

可以看看SpringCloud的发布计划

https://github.com/spring-cloud/spring-cloud-release/milestones

SpringCloud曾经发布的版本:

https://github.com/spring-cloud/spring-cloud-release/releases

版本对应关系(Springboot SpringCloud SpringCloudAlibaba)

地址

https://github.com/alibaba/spring-cloud- alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

上来啥也不看直接看这个

电商重构之微服务技术选型_第8张图片

生产版本选择

  • :想删库跑路请选择 非稳定版本/end-of-life(不维护)版本
  • :想提升技术探雷请选择 release版本
  • :混吃等死拿工资请选择 R2以后的版本可以放心使用.

 

 

你可能感兴趣的:(微服务,spring,cloud)