文章目录
- 前言
- 一、微服务架构设计原理
- 二、微服务架构技术体系
- 三、Spring Cloud框架
- 四、微服务系统案例分析
- 总结
前言
几道面试题:
如何理解为什么要引入微服务架构?
如何对服务进行拆分和集成?
如何理解注册中心的实现策略和框架?
如何对系统中的配置信息进行同意管理?
如何再服务访问时添加服务容错机制?
如何实现服务之间的安全性管理和监控?
如何对微服务系统进行有效的测试?
…
提示:以下是本篇文章正文内容,下面案例可供参考
一、微服务架构设计原理
1.为什么要引入微服务架构?
技术优势
组件化方案
技术自由度
可扩展性
可伸缩性
有效应对遗留系统
支持持续交付
......
业务与组织优势
康威定律(团队中的每个人都是全职能的)
2.如何对微服务进行建模?
微服务架构也是一种分布式架构
纵向拆分和横向拆分
四个维度
服务分类
服务模型
服务数据
服务边界
领域驱动设计(DDD)
清楚界分不同的系统与业务关注点
基于技术设计工具按照领域模型开发软件
3.如何对微服务进行拆分?
拆分的两个维度
业务拆分:
业务体现在各个功能代码中,通过确定业务的边界,并使用领域与界限上下文、领域事件等技术手段可以实现拆分。
数据拆分:
如何将集中式的中心化数据转变为各个或几个微服务各自拥有的独立数据。
4.如何对服务进行集成?
三大集成方式
接口集成
客户端集成
数据集成
5.什么是微服务架构?
微服务架构也是一种分布式架构。
分布式系统的核心问题:
服务实例太多怎么办?
服务调用关系太杂乱怎么办?
服务访问出错怎么办?
配置信息散落在各个服务中怎么办?
服务调用链路太长怎么办?
...
分布式系统的核心问题:
分布式+?=微服务
二、微服务架构技术体系
1.服务通信的方式
网络通信架构
2.服务治理
服务注册中心
3.服务路由
负载均衡
服务器端负载均衡:
客户端负载均衡:
4.服务容错
服务可靠性
5.服务网关
API网关
6.服务配置
分布式配置管理
7.服务安全
访问控制
8.服务监控
分布式链路跟踪
三、Spring Cloud框架
1.Spring Boot功能与原理分析
使用Spring Boot构建单体服务
Spring Boot常见功能
集成Spring Data
集成消息中间件
Actuator系统监控
Spring Boot基本原理
2.Spring Cloud Netflix Eureka与服务治理
3.Spring Cloud Netflix Ribbon与负载均衡
Ribbon基本架构。
使用Ribbon实现客户端负载均衡。
4.Spring Cloud Circuit Breaker与服务容错
5.Spring Cloud Gateway/Zuul与API网关
使用Gateway/Zuul实现服务网关
在Gateway/Zuul中配置服务路由
Gateway/Zuul中的过滤器机制
6.Spring Cloud Config与配置中心
构建Spring Cloud配置中心
使用Spring Cloud配置服务
配置项自动更新机制
7.Spring Cloud Stream与事件驱动
Spring Cloud中的消息通信机制
Spring Cloud Stream架构
实现消息发布者/消费者
8.Spring Cloud Security与服务安全
服务访问安全性与OAuth2协议
构建OAuth2认证服务器
使用OAuth2保护服务访问
9.Spring Cloud Sleuth与微服务监控
服务监控基本原理
集成Spring Cloud Sleuth
整合Spring Cloud Sleuth与Zipkin
四、微服务系统案例分析
1.案例驱动:AppointmentSystem(预约系统)
子域拆分
用户
预约
就诊卡
服务交互
服务列表
服务名称 | 服务描述 | 服务类型 |
---|---|---|
eureka-server | 服务注册中心服务器 | 基础设施服务 |
config-server | 分布式配置中心服务器 | 基础设施服务 |
zuul/gateway-server | zuul/gateway网关服务器 | 基础设施服务 |
auth-server | OAuth2认证服务器 | 基础设施服务 |
user-server | 用户服务 | 业务服务 |
card-server | 就诊卡服务 | 业务服务 |
appointment-server | 预约服务 | 业务服务 |
服务数据
2.案例之外:从案例实战到原理剖析
服务治理原理剖析
服务网关原理剖析
服务容错原理剖析
服务配置原理剖析
事件通信原理剖析
...
总结
原理+实战:
微服务架构设计原理
微服务架构技术体系
Spring Cloud框架
微服务系统案例分析