【图文详解】什么是微服务?什么是SpringCloud?

分类: be365备用网址 时间: 2025-11-11 13:59:48 作者: admin 阅读: 7874

目录

一.认识微服务架构

▐ 微服务带来的挑战

二.微服务解决方案SpringCloud

▐ SpringCloud的版本

▐ SpringCloud和SpringBoot的关系

▐ SpringCloud实现方案

Spring Cloud Netfix

Spring Cloud Alibaba

▐ Spring Cloud 实现对比

在入门Spring Cloud 之前,我们需要先了解下什么是微服务,以及微服务的发展史。在架构发展的过程中,项目开发遇到了哪些问题,以及Spring Cloud是用来解决什么问题的。

一.认识微服务架构

下图表示了单体架构到微服务架构的发展过程

什么是单体架构?

很多创业公司早期或者传统企业会把业务的所有功能实现都打包在⼀个项目,这就是单体架构。业务的所有功能实现都打包在⼀个war包或者Jar包中,我们将这种方式就称为单体架构。

以电商系统为例,电商系统包括:用户管理、商品管理、订单管理、支付管理、库存管理、物流管理等等,项目早期我们会把这些模块都写在⼀个web项目中,然后统⼀部署到⼀个Web服务器中。

这种架构开发和部署都很简单,⼀个项目就包含了所有的功能,省去了多个项目之间的交互和调⽤消耗,直接部署在⼀个服务器即可。

当网站的用户量越来越大,需求也会越来越多,流量也会越来越大,服务可能就会⾯临以下问题:

后端服务器的压力就会越来越大,负载越来越高,甚⾄出现无法访问的情况

业务场景逐渐复杂,为了满⾜用户的需求,单体应⽤也会越来越⼤,各个业务代码之间的耦合度也会越来越高,任何⼀个问题,都需要整个项目重新构建,发布

⼀个微笑的问题都可能会导致整个应用挂掉

我们从两个方向进行优化:

横向: 添加服务器,把单台机器变成多台机器的集群,即利用集群的思想。

纵向: 把⼀个应用,按照业务进行拆分,拆分为多个项目,此架构也称为垂直架构,即利用分布式的思想。

以单体结构规模的项目为单位进行垂直划分,也就是将⼀个⼤项目拆分成⼀个⼀个单体结构项⽬,项目和项目之间相对比较独立。

从上图中可以看出,按照业务进行拆分后,会有⼀些重复的功能开发,比如订单系统在电商平台和支付系统都会涉及。

在分布式架构下,当部署的服务越来越多,重复的代码就会越来越多,服务的调⽤关系也会越来越复杂,我们可以把⼀些通用的会被多个上层服务调⽤的共享业务提取成独⽴的基础服务,组成⼀个个微小的服务,这就是微服务.

很多人会把分布式和微服务弄混淆,这二者严格上说是不能划等号的,

从功能上说:

分布式: 服务拆分, 拆了就⾏.

微服务: 指⾮常微小的服务, 更细粒度的垂直拆分, 通常指不能再拆的服务

从侧重点上说:

分布式架构侧重于压力的分散,强调的是服务的分散化

微服务侧重于能力的分散,更强调服务的专业化和精细分⼯

从实践的⻆度来看,微服务架构通常是分布式服务架构;反之则未必成⽴,所以选择微服务通常意味着需要解决分布式架构的各种难题

▐ 微服务带来的挑战

随着产品的复杂性和流量的增加,技术架构也在不断的发⽣变化,不论是早期的单体架构还是现在⼴泛使用的微服务架构,都是为了更好的服务产品,解决问题。

微服务架构带来好处的同时,也⾯临着⼀些挑战,从单体服务转向微服务意味着管理更加复杂,接下来我们从优势和挑战两个方向分析⼀下微服务架构。

相关文章

365速度发国际大厅

浇筑混凝土后浇水养护多少天?老师傅苦心规劝:这些细节决定质量!

365bet正网注册

完整指南:Postman汉化下载、安装、使用教程

be365备用网址

正在阅读:电子稿怎么在手机上做电子稿怎么在手机上做