架构师训练营 1 期 - 第十周总结(vaik)
本周概述
本周主要有四个大的主题
一 微服务,介绍微服务的历史和由来,微服务解决什么痛点问题,有什么基本功能,微服务落地最核心要点是什么?
二 DDD 领域驱动设计,介绍了DDD的基本概念,如何利用DDD来拆分业务,理清微服务边界,从而让微服务落地。
三 组件设计原则,组件封装的基本原则,通过公共组件的封装,有利于理清业务依赖,帮助微服务落地。
四 微服务重构案例,倒三角的原则,从需求到值价再到工具框架再到实现
微服务
微服务诞生历史原由
巨型应用系统,编译时间长,部署困难
代码分支管理困难
数据库链接耗尽
新增业务困难
基于上述痛点,解决的核心就是拆分,将模块独立部署,降低系统耦合。
微服务参考起源于soap的webservice
webservice 因存在一些显著的缺点,使其未推广开来
臃肿的注册与发现机制
低效的XML序列化手段
开销相对较高的HTTP远程通信
复杂的部署和维护方式
这些问题导致 Web Service 难以满足大型网站对系统高性能、高可用、易部署、易维护
的要求。
微服务框架解决的问题
基本的服务注册与发现,及服务调用
支持失效转移,集群部署,实现服务高可用
负载均衡:使用加权轮询等方式,使服务提供者集群实现负载均衡。
高效的远程通信
对应用最少侵入
版本管理
微服务框架(Dubbo)架
Service Mesh 服务
Service Mesh是一个基础服务,用于处理服务间的通信,通常表现为一组轻量级的服务代理,与应用程序部署在一起,对应用层透明。
Sidecar 模式
如何落地微服务
从需求和业务出发,理顺业务边界与依赖,技术是手段不是目的
先有独立的模块,后有分布式的服务
业务耦合严重,逻辑复杂多变的系统进行微服务重构要谨慎
搞清楚实施微服务的目的是什么?业务复用?开发边界清晰?分布式集群提升性能?
微服务框架核心特性
命令与查询职责隔离
事件溯源
断路器
服务重试及调用超时
技术工具选型的倒三角模型
基于网关的微服务架构
网关的作用
统一接入,高性能,高可用,高可靠,负载均衡
安全防护,防刷控制,黑白名单
流量管理与容错,限流,降级,容断
协议适配:http,dubbo,jsf.....
网关通道技术
网关本身没有什么业务,主要职责是做各种校验与拦截,这些职责可以通过管道技术连
接起来。
实现网关技术的责任链模式
Flower 异步网关与异步微服务框架
开放平台网关
开放授权协议
DDD 领域驱动设计
组件设计原则
微服务重构案例
评论