概述
微服务架构为复杂业务提供了很好的解决方案,但是也给开发、测试、运维代理的非常大的挑战。
- 服务间通信。
- 服务集群部署后,如何动态感知服务的变化。
- 服务部署。
- 服务熔断。
- 服务链路追踪。
- 服务配置。
- 服务网关。
- …
什么是Spring Cloud
是一种生态,分布式云服务的行业规范,基于规范对相关组件的整合。
Spring Cloud主要致力于解决如下问题:
- Distributed/versioned configuration,分布式及版本化配置。
- Service registration and discovery,服务注册于发现。
- Routing,服务路由。
- Service-to-service calls,服务调用。
- Load balancing,负载均衡。
- Circuit Breakers,断路器。
- Global locks,全局锁。
- Leadership election and cluster state,Leader选举及集群状态。
- Distributed messaging,分布式消息。
Spring Cloud版本简介
由于Spring Cloud是一套整合了各大公司开源技术的规范,而这些开源技术的版本发布是由各个公司来维护的,每个子项目都维护了自己的版本号,所以它不像传统意义上的版本命名,而是采用了伦敦地铁站的名字根据字母表的顺序结合对应版本的时间顺序来定义一个大版本,Spring Cloud以往的版本发布顺序排列如下:
- Angel(最早的Release版本)
- Brixton
- Camden
- Dalston
- Edgware
- Finchley
- Greenwich
- Hoxton
- …
Spring Cloud的每一个大版本通过BOM(Bill of Materials:物料清单)来管理每个子项目的版本清单。
比如Spring Cloud的版本号Edgware.SR6,表示第6次发布的Edgware service release版本。
Spring Cloud项目的发布内容积累到一个临界点或者解决一些严重的Bug后,会发布一个Service Release的版本,简称SRX,其中X是一个递增的数字。
值得注意的是Spring Cloud中的所有子项目都依赖Spring Boot框架,所有Spring Boot框架的版本号和Spring Cloud的版本号之间也存在依赖及兼容关系。如下图:
Spring Cloud规范下的实现
Spring的做产品的思想,定义规范,整合别人的东西,只有在别人做的不够好的情况下才自己造轮子。
Spring团队一直在不断的为开发者解决一些技术难度高的问题,使开发者能够更高效地专注于业务开发。从Spring framework到Spring Boot,再到Spring Cloud,都是如此。
Spring Cloud生态下服务治理的解决方案主要有两个:Spring Cloud Netflix和Spring Cloud Alibaba。这两个解决方案分别是针对Netflix OSS及Alibaba的服务治理体系基于Spring Cloud规范做的整合。
Spring Cloud Alibaba
Spring Cloud Alibaba是阿里巴巴集团下的开源组件和云产品在Spring Cloud规范下的实现。
Spring Cloud Alibaba主要为微服务开发提供一站式的解决方案,使开发者通过Spring Cloud编程模型轻松地解决微服务架构下的各类技术问题。以下是Spring Cloud Alibaba生态下的主要功能组件,这些组件包含开源组件和阿里云产品组件,云产品是需要付费使用的。
- Sentinel,流量控制和服务降级。
- Nacos,服务注册于发现。
- Nacos,分布式配置中心。
- RocketMQ,消息驱动。
- Seate,分布式事务。
- Dubbo,RPC通信。
- OSS,阿里云对象存储(收费的云服务)。
Spring Cloud Alibaba的版本
Spring Cloud Alibaba的版本是从Spring Cloud Edgware这个大版本开始支持的。
下面是目前的Spring Cloud大版本与Spring Cloud Alibaba和Spring Boot版本之间的依赖关系图。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100364.html