哈喽各位同学们大家好呀,小编今天带着开发者学院中课程“微服务架构中的经典设计模式 ”干货总结来了~一起学习新课程吧!
课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇
课程名称:微服务架构中的经典设计模式
课程地址:https://developer.aliyun.com/learning/course/60/detail/1112
图谱名称:Alibaba Java 技术图谱
图谱地址:https://developer.aliyun.com/graph/java
微服务架构中的经典设计模式
一、微服务架构设计模式
1.业务分解:DDD模式
2.DataBase PerService每数据库单服务
3.API Gateway pattern API网关模式
4.Client-side Discovery和 Server-side Discovery模式
5.Messaging和Remote Procedure Invocation模式
6.SingleServiceper Host和 Multiple Services per Host 模式7
7.AOP: Microservice chassis pattern
8.Externalized configuration
9.Service Component Test和Service Integration Contract Test
10.Circuit Breaker断路器模式
11.Access Token访问令牌模式
12.观察者模式:Distributed tracing、 Health check API
13.UI模式:MVC、MVPMVVM模式
微服务架构中的经典的设计模式,一般提到微服务会认为微服务架构指的是一种架构,实际上微服务架构本身涵盖几十种设计模式,可能后续还有更多的设计模式。
如图所示,以微服务架构为中心向外发散,有许多设计模式,正下方有两个,一个叫客户端发现,一个叫服务端发现,服务的注册和发现机制也是一个设计模式,微服架构属于更复杂的分布架构,里面也会用到消息通信,通过消息和数据库、其他微服务进行消息补偿。
网关的微服务太多,只有一个出口,需要给它同一个代理;安全问题,如图中 Access token,和令牌相关的;另外还有高并发的熔断限流,circuit breaker叫断路器模式,熔断相关,分布式日志、分布式加策、追踪、服务拆分模式、单数据库模式、单实例、单数据库模式多服务共享数据库模式、服务编排模式、统一配置模式等等。
这里主要是分布式架构领域相关的设计模式,还有分布式事务模式,一般用的都是补偿的方式。
服务拆分的一般借鉴DDD模式,但不是照搬,不能完全等同。
二、微服务设计模式分类
应用架构模式:
单点登录
注册发现
熔断限流
断路器
网关模式
消息补偿模式
令牌模式
数据库:
分库Single Service
共库多Service
多库同步
事务性补偿
日志追踪模式:
观察者模式patterns
Log aggregation
Application metrics
Audit logging
Distributed tracing
Exception tracking
Health check API
Log deployments and changes
分布式链路追踪模式
UI模式:
MVC
MVP
MVVM
Server-side page fragment composition
Client-side Ul composition