SpringCloud微服务系列- 微服务架构进化论

SpringCloud微服务系列-微服务架构进化论

   一、微服务架构进化论

   1. 单体应用阶段

   所有功能模块和组件都在一个单一的代码库中构建和部署。整个应用程序作为一个整体进行开发、测试和部署。  

    

 

   

 

   2.  垂直应用阶段(nginx负载均衡)

   垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个独立的单体架构。

   我们以一个简单的电商项目为例,假设我们的业务分为用户、订单、商品、后台4个模块,我们现在要把这4个模块分别剥离出来,各自构成独立的web项目。

    

    

单个请求的处理速度上下降了。

   现在假设用户模块以集群的方式部署在机器A和机器B,订单模块部署在机器C、D、E,用户如何查询自己的订单?

 

即各模块相互调用成了问题。

 


最后我们简单总结一下垂直拆分的优缺点。

 

优点:

 

系统之间的模块相互独立,从业务的角度上降低了耦合度;
可以针对不同的业务模块搭建集群,流量大的模块可以多部署几台机器,边缘模块甚至单机部署即可;
不同的模块可以由不同的团队负责,协同开发的影响降到最低
缺点:

 

模块与模块之间相互调用变得复杂
模块越来越多,代码冗余

 

3. 分布式系统阶段
4. 服务治理阶段
服务与服务之间的调用问题

服务治理(SOA)
服务总线:服务注册、调用、路由、事件框架

5. 微服务阶段
什么是微服务:将系统的业务功能划分为极小的独立微服务,每个微服务只关注于完成某个小的任务。系统中的单个微服务可以被独立部署和扩展,且各个微服务之间是高内聚、松耦合的。微服务之间采用轻量化通信机制来实现通信

服务网关:前台 比如Spring Cloud Gateway
熔断机制:服务都是有限制的
工作效率监督:Sleuth,日志监控ELK
配置中心:应用配置、业务配置、缓存配置


微服务的拆分规范和原则

1. 压力模型拆分
压力模型简单来说就是用户访问量,我们要识别出某些超高并发量的业务,尽可能把这部分业务独立拆分出来

压力模型拆解为三个维度:
1)高频高并发场景 (商品详情页)
2)低频突发流量场景(秒杀场景)
3)低频流量场景 (商品图文编辑)

2. 业务模型拆分

业务模型拆分的维度有很多,我们在实际项目中应该总和各个不同维度做考量。这里主要从主链路、领域模型和用户群体三个维度。

1)主链路

在电商领域"主链路"是一个很重要的业务链条,它是指用户完成下单场景所必须经过的场景。比如商品搜索->商品详情页->购物车模块->订单结算->支付业务

核心主链路拆分,有以下几个目的:
异常容错
调配资源
服务隔离

3. 领域模型拆分
领域驱动设计DDD(Domain-Driven Design 领域驱动设计)

4. 用户群里拆分
根据用户群体做拆分,我们首先要了解自己的系统业务里有哪些用户,比如说电商领域,有2C的小卖家,也有2B的大客户

 

Spring Cloud 是一个基于Spring Boot实现的微服务架构开发工具。

Spring Cloud 和 Netfix

Spring Cloud Alibaba

Springboot和SpringCloud


    三、 如何学习Spring Cloud

    可以概括为三大功能,两大特性

    1. 两大特性:高可用性和高可扩展性

    2. 三大功能是指微服务核心组件的功能维度。

    具体是指:服务间通信,服务容错、异常排查,分布式能力建设

    1)服务间通信: 服务治理、负载均衡、服务间调用

    2)服务容错、异常排查: 流量整形、降级熔断、调用链追踪

    3)分布式能力建设:微服务网关、分布式事务、消息驱动、配置管理

   其中常见的组件包括:

 

   服务注册发现:Eureka、Nacos、Consul、Zookeeper

 

   统一配置管理:SpringCloudConfig、Nacos(阿里)、Apollo(携程)

 

   服务远程调用:OpenFeign、Dubbo

 

   统一网关路由:SpringCloudGateway,Zuul

 

   服务链路监控:Hystix、Sentinel、Resilence4j

 

   流控、降级、保护:Zipkin、Sleuth

   如下图:

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2024-06-25 12:24  欢乐豆123  阅读(3)  评论(0编辑  收藏  举报