架构师训练营 1 期 - 第十周总结(vaik)

用户头像
行之
关注
发布于: 2020 年 11 月 29 日
架构师训练营 1 期 - 第十周总结(vaik)

本周概述

本周主要有四个大的主题

一 微服务,介绍微服务的历史和由来,微服务解决什么痛点问题,有什么基本功能,微服务落地最核心要点是什么?

二 DDD 领域驱动设计,介绍了DDD的基本概念,如何利用DDD来拆分业务,理清微服务边界,从而让微服务落地。

三 组件设计原则,组件封装的基本原则,通过公共组件的封装,有利于理清业务依赖,帮助微服务落地。

四 微服务重构案例,倒三角的原则,从需求到值价再到工具框架再到实现

微服务

微服务诞生历史原由

  • 巨型应用系统,编译时间长,部署困难

  • 代码分支管理困难

  • 数据库链接耗尽

  • 新增业务困难

基于上述痛点,解决的核心就是拆分,将模块独立部署,降低系统耦合。

微服务参考起源于soap的webservice

webservice 因存在一些显著的缺点,使其未推广开来

  • 臃肿的注册与发现机制

  • 低效的XML序列化手段

  • 开销相对较高的HTTP远程通信

  • 复杂的部署和维护方式

这些问题导致 Web Service 难以满足大型网站对系统高性能、高可用、易部署、易维护

的要求。

微服务框架解决的问题

  • 基本的服务注册与发现,及服务调用

  • 支持失效转移,集群部署,实现服务高可用

  • 负载均衡:使用加权轮询等方式,使服务提供者集群实现负载均衡。

  • 高效的远程通信

  • 对应用最少侵入

  • 版本管理

微服务框架(Dubbo)架



Service Mesh 服务

Service Mesh是一个基础服务,用于处理服务间的通信,通常表现为一组轻量级的服务代理,与应用程序部署在一起,对应用层透明。

  • Sidecar 模式

  • 如何落地微服务

  • 从需求和业务出发,理顺业务边界与依赖,技术是手段不是目的

  • 先有独立的模块,后有分布式的服务

  • 业务耦合严重,逻辑复杂多变的系统进行微服务重构要谨慎

  • 搞清楚实施微服务的目的是什么?业务复用?开发边界清晰?分布式集群提升性能?

微服务框架核心特性

  • 命令与查询职责隔离

  • 事件溯源

  • 断路器

  • 服务重试及调用超时

技术工具选型的倒三角模型

基于网关的微服务架构

网关的作用

  • 统一接入,高性能,高可用,高可靠,负载均衡

  • 安全防护,防刷控制,黑白名单

  • 流量管理与容错,限流,降级,容断

  • 协议适配:http,dubbo,jsf.....

网关通道技术

网关本身没有什么业务,主要职责是做各种校验与拦截,这些职责可以通过管道技术连

接起来。

实现网关技术的责任链模式

  • Flower 异步网关与异步微服务框架

  • 开放平台网关

  • 开放授权协议

DDD 领域驱动设计



组件设计原则

微服务重构案例



用户头像

行之

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 1 期 - 第十周总结(vaik)