什么是开发微服务基础架构平台

微服务体系结构是自2014年首次提出以来,许多大企业开始使用微服务完成公司主要业务逻辑的低耦合软件体系结构。

微服务技术架构基础平台包括服务、网关服务注册与发现、容错处理、监控告警日志等组件,但要去实现这些架构,需要有软件或开发平台,对于这些可重复使用的软件或组件,称其为框架平台。本文就当前较为主流的微服务技术架构进行概要介绍。

微服务技术框架按功能划分可以分为如下三方面:微服务基础架构平台、微服务基础架构平台API接口和微服务组件开发。


微服务技术框架功能图

从面向业务的开发和面向通用的技术支撑把微服务平台分为两大类:微服务基础框架平台和微服务开发框架平台。对于微服务开发框架平台比较典型的技术框架就是Spring Boot框架。

微服务基础框架平台分为两类:开发型微服务基础框架平台和运维型微服务基础框架平台。提供微服务基础架构平台和微服务基础架构平台API的框架平台为开发型微服务基础框架平台。例如,Netflix的微服务框架、SpringCloud微服务框架、SpringCloud Alibaba微服务框架等。另外还有提供基础设施平台的框架如各类云上微服务框架,称为Serverless型微服务基础框架平台,如AWS Lambda。


微服务技术框架构成图

开发型微服务基础框架平台和运维型微服务基础框架平台的区别主要体现在以下6个方面(任钢.微服务体系建设和实践):

①开发型微服务基础框架平台有明确的微服务架构组件定义,而运维型微服务基础框架平台则比较含糊,一般定义为服务和支持平台;

②侧重点不同,开发型微服务基础框架平台更多地趋向于灵活性和定制化,运维型微服务基础框架平台则侧重于运维的规则定义;

③运维方式不同,基于服务模式不同;

④开发型微服务基础框架平台虽然支持微服务的编程语言无关性,但对于框架基础设施有编程语言倾向性,有的框架甚至绑定编程语言,而运维型微服务基础框架平台基本上是编程语言无关性;

⑤开发型微服务基础框架平台主要关注开发实现,创新性比较强,而运维型微服务基础框架平台主要关注运维高效,稳定性比较强;

⑥开发型微服务基础框架平台有一定的代码侵入性,而运维型微服务基础框架平台则不具备这一特点。

开发型微服务基础框架平台和运维型微服务基础框架平台可以相互渗透。例如,SpringCloud和Netflix就可以与Kubernetes整合在一起。

什么是Spring Cloud

简单来说,Spring Cloud提供了一些可以让开发者快速构建微服务应用的工具,比如配置管理、服务发现、熔断、智能路由等,这些服务可以在任何分布式环境下很好地工作。Spring Cloud主要致力于解决如下问题:

  • Distributed/versionedconfiguration,分布式及版化配置。
  • Serviceregistrationanddiscovery,服务注册与发现。
  • Routing,服务路由。
  • Service-to-servicecalls,服务调用。
  • Loadbalancing,负载均衡。
  • CircuitBreakers,断路器。
  • Globallocks,全局锁。
  • Leadershipelectionandclusterstate,Leader选举及集群状态。
  • Distributedmessaging,分布式消息。

值得注意的是,Spring Cloud并不是Spring团队全新研发的框架,它只是把一些比较优秀的解决微服务架构中常见问题的开源框架基于Spring Cloud规范进行进行了整合,通过SpringBoot这个框架进行再次封装后屏蔽掉了复杂的配置,给开发者提供良好的开箱即用的微服务开发体验。SpringCloud其实就是一套规范,而Spring Cloud Netflix、Spring Cloud Consul、Spring Cloud Alibaba才是Spring Cloud规范的实现。

Spring Cloud版本选择

Spring Cloud是一套整合了各大公司开源技术的规范,这些版本发布是由各个公司来维护的,每个子项目都维护了自己的发布版本号,所以它不像传统意义上的版本命名,而是采用了伦敦地铁站的名字根据字母表的顺序A-Z结合对应版本的时间顺序来定义一个大版本,Spring Cloud以往的版本发布顺序排列如下:


Spring Cloud版本信息

Spring Cloud中所有子项目都依赖SpringBoot框架,所以Spring Boot框架的版本号和Spring Cloud的版本号之间也存在依赖及兼容的关系。如下图示,Spring Cloud 的H版对应Spring Boot 2.2以上版本,当前Spring cloud的最新版为Hox,如果采用Spring Cloud Hox及以上的版本,需要采用Spring Boo的版本。同时,F版以前的版本已不在支持,所以在做Spring cloud版本选型时建议至少选择Greenwich版以上的版本。



当前,SpringBoot最新版本为2.3.4,是否SpringCloud的最新版Hox对应SpringBoot的最新版本2.3.4呢?回答是"NO"。其具体的版本对应规则应该是选定SpringCloud的版本,然后去官网确定SpringBoot的版本(https://docs.spring.io/spring-cloud/docs/Hox/reference/htmlsingle/),具体方法如下图示:



从上图示,Hox对应Boot 2.3.3版本。

当前,Spring Cloud生态下服务治理的解决方案主要有两个:Spring Cloud Netflix和Spring Cloud Alibaba。这两个解决方案分别是针对Netflix OSS及Alibaba的服务治理体系基于Spring Cloud规范做的整合。

微服务技术架构由一系列组件构成,如下图:


微服务技术架构运作组件

下面就微服务的基础组件做一个概要的介绍。

Spring官网

Spring Cloud Netflix

Spring Cloud Netflix是Spring Boot和Netflix OSS在Spring Cloud规范下的集成。其中,Netflix OSS(NetflixOpenSourceSoftware)是由Netflix公司开发的一套开源框架和组件库,Eureka、Zuul等都是Netflix OSS中的开源组件。而Spring Cloud只是把这些组件进行了整合,使得使用者可以更快速、更简单地构建微服务,以及解决微服务下的服务治理等难题。在2018年以前,Spring Cloud Netflix是众多公司在做技术选型时的首选,其相关组件如下图示:


采用Spring Cloud Netflix系列构建微服务基础架构平台


Netflix OSS进入维护,不再主动更新

Netflix OSS本身是一套非常好的组件,由于Netflix对Zuul1、Ribbon、Archaius等组件的维护不利,在2018年底,Spring Cloud决定在Greenwich中将如下项目都改为“维护模式”(进入维护模式意味着这些组件以后不会有大的功能更新,只会修复Block级别的Bug及安全问题)。()


Spring Cloud Netflix进入维护模式

Spring官方提供了替换的建议。


Spring官网替换方案

当然,除Spring Cloud Netflix外,在服务治理的解决方案上,还会有更多的选择,而最新发布的Spring Cloud Alibaba就是当前最主流的替代方案。

Spring Cloud Alibaba

Spring Cloud Alibaba是阿里巴巴集团下的开源组件和云产品在Spring Cloud规范下的实现。2018年10月31日,Spring Cloud Alibaba正式入驻Spring Cloud官方孵化器,并发布了第一个预览版本。2019年8月1日在Alibaba仓库发布第一个毕业版本。当前的最新版本为2.2.1。Spring Cloud Alibaba主要为微服务开发提供一站式的解决方案,使开发者通过Spring Cloud编程模型轻松地解决微服务架构下的各类技术问题。以下是Spring Cloud Alibaba生态下的主要功能组件,这些组件包含开源组件和阿里云产品组件,云产品是需要付费使用的。

•Sentinel,流量控制和服务降级。

•Nacos,服务注册与发现。

•Nacos,分布式配置中心。

•RocketMQ,消息驱动。

•Seate,分布式事务。

•Dubbo,RPC通信。

•OSS,阿里云对象存储(收费的云服务)。

对照上面“采用Spring Cloud Netflix系列构建微服务基础架构平台”图,其相关组件如下图示:


采用Spring Cloud Alibaba系列构建微服务基础架构平台

当然,开发型微服务基础架构平台不仅仅包括以上的组件,还包括链路追踪监控、消息组件、分布式事务等等。另外,针对微服务架构涉及的前后端分离技术也可以采用Spring Boot和Vue的技术来实现。

微服务基础架构平台图

以上,是针对微服务Spring Cloud当前主流基础架构的介绍,也可以作为组件选型时的参考。针对各部分组件的具体介绍后续再撰文介绍。

1.《关于怎么测自己的发型的软件是什么软件,你需要知道这些开发型微服务基础框架平台:Spring Cloud介绍》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《关于怎么测自己的发型的软件是什么软件,你需要知道这些开发型微服务基础框架平台:Spring Cloud介绍》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3073724.html