【微服务架构设计实施】第一部分:架构篇-1:微服务架构与Spring Cloud介绍

〇、概述

 

一、微服务架构与Spring Cloud

(一)概念

不同说法:细粒度的、清凉组件化的小型SOA(面向服务架构)

统一说法:小型应用程序(服务组件),使用轻量级设计方法和HTTP协议通信

理想说法:可以不同语言编写,完全独立自治

(二)定义

广义:复杂系统组件化拆分,轻量通信方式整合,得到拆分的独立组件化小应用

组件:代码&函数式调用

微服务组件:应用&HTTP通信提供接口服务

精髓:分而治之(复杂系统拆分)、合而用之(轻量方式整合【多实例、多服务、多副本整合,分布式资源和低廉机器组成强大服务系统】)

HTTP通信:通过服务注册与发现,使用服务实例名调用【通过负载均衡器从服务注册列表选用可用的服务实例,再通过实例注册的ip+端口路由到相关的服务】,而非ip+端口【优点:基于api的微服务,可以在任意主机发布,随时更改主机端口,发布任意个副本】

特点:小型化(每个组件变小&专注)、自治化(解耦&服务迭代降低影响)、扁平化(有序可控、杂而不乱、发挥更大优势)、轻量级设计(api同步通信-REST协议、消息异步通信-轻量消息总线)、渐进式设计(业务驱动、快速迭代 不断调整、使产品趋于成熟)

(三)微服务架构与整体式架构的区别

整体式架构:笨重、难以更新(牵一发动全身)、稳定性欠缺(整个崩溃)、不方便持续开发(难以适应需求变更、快速迭代敏捷开发,成为业务发展绊脚石)

微服务架构:复杂事情简单化、快速更新迭代、高可用(并发、高流量访问、规模化发展)

结构图:整体式六边形(不同适配器)

微服务架构

参考:https://www.sohu.com/a/439667700_715776

(四)微服务架构与SOA的比较

SOA:粗粒度&松耦合的面向服务架构设计方法,使用企业服务总线ESB构建信息系统【工具:Dubbo/Dubbox】

SOA本质:业务访问基础服务

区别:微服务轻量级(HTTP协议,通过restful实现),SOA重量级(复杂协议,如WebService)

微服务优势:高可用、伸缩性、负载均衡、故障转移,通过微服务治理(三维结构),提供无限可扩展空间

(五)为什么要使用微服务架构

开发简单

快速响应需求变化

随时随地更新

系统稳定可靠

规模持续扩展

(六)为实施微服务架构做好准备

观念转换:做项目改为做产品(不断迭代),构建生态体系

团队管理方式转变:围绕业务功能分配

自动化基础设施建设:CICD+docker实施交付

(七)为什么使用Spring Cloud

Netflix OSS开源组件

Spring Cloud开发套件:

阿里巴巴实现了标准,并整合多个组件

左边是Spring Cloud自己写了接口和实现类

右边是各个厂商写的实现类(实现Spring Cloud的标准)

(八)Spring Cloud组件说明

(九)Spring Cloud的版本说明

二、微服务架构最佳设计

(一)合理划分微服务

 

(二)微服务治理

 

(三)Rest API微服务设计

 

(四)Web UI微服务设计

 

(五)微服务之间调用规则设计

 

(六)数据最终一致性设计

 

(七)分布式集群架构设计

 

(八)微服务运行环境安全设计

 

 

三、电商平台微服务设计实例

(一)电商平台总体设计

 

(二)电商平台业务模型设计

 

(三)创建Rest API微服务

 

(四)创建Web UI微服务

 

(五)电商平台微服务体系结构

posted @ 2022-09-21 12:42  哥们要飞  阅读(60)  评论(0编辑  收藏  举报