irpas技术客

SpringCloud微服务架构学习笔记_Redamancy_C

irpas 4756

SpringCloud微服务架构学习笔记(待更新) 01.什么是微服务架构02.如何把握全局视角去设计微服务工程03.Alibaba Nacos: 服务注册与配置中心04.SpringBoot Admin 微服务应用监控05.授权、鉴权中心微服务06.SpringCloud GateWay 微服务网关(待补)07.SpringCloud Sleuth + Zipkin: 分布式日志追踪(待续)

01.什么是微服务架构

什么是微服务架构 微服务架构的演进过程 最早的系统架构设计:单体架构 ● 优点:开发、部署、上线非常简单。 ● 缺点:代码耦合严重,牵一发而动全身。

单体架构的升级改进:垂直应用架构 ● 优点:服务、部署独立,水平扩展容易。 ● 缺点:搭建复杂,服务之间关系错综复杂,维护困难。

垂直应用架构的升级改进:SOA 架构(面向服务架构) ● 优点:提供了底层服务的统一入口(ESB),简化了客户端的去调用。 ● 缺点:实现难度较高、开发周期较长、业务逻辑划分太大、相对来说存在一定的耦合。

业界最流行的软件开发架构:微服务架构

微服务架构需要遵循的原则 微服务架构能够带来的收益 合理、正确的将单体应用迁移到微服务 ● 单个的微服务,可以选择一门擅长的语言去开发,扩展性强。 ● 对于整个应用而言,代码不再耦合,不会出现大量的冲突。 ● 微服务可以重用,应用发布时间可控性更强。 ● 通过故障隔离,让错误在微服务中降级,不会影响到整个应用(或其他服务)。

不遵循微服务架构原则会出现巨大的问题 ● 微服务之间的依赖错综复杂,难以维护。 ● 开发过程互相纠缠,开发、上线时间严重影响。

需要遵循的原则 ● 职责独立:每个微服务只做自己功能范围内的事,微服务之间的依赖链不要过长,否则排除问题会异常复杂。

● 使用熔断器实现快速的故障容错和线程隔离,例如 Hystrix、Sentinel。 ● 通过网关代理微服务请求,网关是微服务架构对外暴露的唯一入口。

● 确保微服务 API 变更后能够向后兼容。

02.如何把握全局视角去设计微服务工程

领域驱动设计 DDD DDD 相关概念 ● DDD 是一种软件架构设计方法,它并不定义软件开发过程(DevOps)。 ● DDD 利用面向对象的特性,以业务为核心驱动,而不是传统的数据库(表)驱动开发。 什么是领域 ● 领域是对功能需求的划分;大的领域下面还有许多小的子领域。

领域建模 ● 理解了领域概念,学习了领域知识,对领域建模。 ○ 分析领域模型(搞清楚领域内包含的业务场景),推演实体(需要的数据表)、值对象(服务之间传递数据的对象)、领域服务(具体功能实现,Service)。 ○ 找出聚合边界(降低服务耦合)。 ■ 做合理的业务拆分、服务拆分。 ■ 服务与服务之间不存在或者存在极少的耦合,便于将来的系统维护。 ○ 为聚合配备存储仓库(数据持久化)。 ■ 也就是要有数据库将数据持久化。 ○ 实际 DDD,并不断推倒和重构、优化。

DDD 经典分层架构图

● User Interface:用户接口层 ○ 主要是面向于用户去展示信息并接受用户的指令。 ● Application:应用程序层 ○ 相当于 Controller 的一层,它对外提供服务接口,对内调用领域层,不包含业务逻辑,是领域模型的门面。 ● Domain:领域层 ○ 核心层,领域模型所在之处,可以认为它就是数据库中的表。 ● Infrastructure:基础设施层 ○ 为其他层提供通用的基础能力,比如层之间的通信、持久化机制等等。 传统的软件开发习惯与 DDD ● 传统的软件开发习惯总是从设计数据表去开始的,存在的最大问题是一旦前期设定的数据表不合理,后期的改动就会非常大。 ● DDD 的优势在于程序设计初期关注的是业务而不是数据表,数据持久化只是设计后期的一个考虑。

电商工程业务解读及微服务模块拆分

03.Alibaba Nacos: 服务注册与配置中心

Alibaba Nacos 的基本架构与概念

● 服务:指一个或一组软件功能,例如特定信息的检索或者是一组操作的执行。它的目的是不同的客户端可以为不同的目的去重用(例如通过跨进程的网络调用)。Nacos 支持主流的服务生态,如 Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service 等等。 ● 配置服务:工程在运行的过程中可能需要一些动态的配置信息,例如服务的元数据,数据库地址等等。此时就可以通过 Nacos 存储并管理这些配置信息。Nacos 的配置服务对标 Spring Cloud Config, 且比他更加优秀。 ● 名字服务:服务注册与服务发现是微服务架构下不可缺少的功能,服务注册是说服务把自己的信息(例如 IP 地址、端口号、服务名称)注册到 Nacos 上去绑定,服务发现则是其他的微服务提供一些信息通过 Nacos 去寻找已经注册的微服务。依此 能够实现微服务之间的互通互联。

部署 Alibaba Nacos 单机版本 默认用户名/密码均为 nacos

集群化部署 Alibaba Nacos

Alibaba Nacos Client 服务注册与发现

04.SpringBoot Admin 微服务应用监控

回顾 SpringBoot Actuator

搭建 SpringBoot Admin 监控服务器

应用注册到 SpringBoot Admin Server 监控中心添加安全访问控制

05.授权、鉴权中心微服务

授权、鉴权中心微服务功能设计 什么是 JWT JWT、会话、少量信息交换

JWT 的结构(组成部分)

授权、鉴权功能设计

06.SpringCloud GateWay 微服务网关(待补)

07.SpringCloud Sleuth + Zipkin: 分布式日志追踪(待续)


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #nacos #admin #gateway