微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务于服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
————摘自 马丁·福勒先生的博客
![3145530-d3761524c169faa0.png](https://i-blog.csdnimg.cn/blog_migrate/408deaeb9f6ecead5ff2424ec6ca9b6e.webp?x-image-process=image/format,png)
课程目录
![3145530-049897de51be87ac.png](https://i-blog.csdnimg.cn/blog_migrate/b0bc875c58f2a0fb77e5111ce3736bac.webp?x-image-process=image/format,png)
微服务的te dian
![3145530-888742afd3c59b25.png](https://i-blog.csdnimg.cn/blog_migrate/f54d49a3b2122ecc10e2ba793b1fe561.webp?x-image-process=image/format,png)
微服务优点
![3145530-cb1f5f48aa4121ea.jpg](https://i-blog.csdnimg.cn/blog_migrate/29557ac957218656d01167d2a6de038b.webp?x-image-process=image/format,png)
转转交易平台的特点
![3145530-aea8830ac5a6b8e4.jpg](https://i-blog.csdnimg.cn/blog_migrate/0505bec1651365b3d8fe17d9e417998c.webp?x-image-process=image/format,png)
整个项目的设计概要
![3145530-a04be46131c39665.jpg](https://i-blog.csdnimg.cn/blog_migrate/9bda680b112e9fab1fc3f8dfde852b43.webp?x-image-process=image/format,png)
整体架构
1.微服务网关层(HTTP)
维护海量链接,对身份进行校验,session管理,转发请求
2.微服务聚合层(RPC)
业务逻辑处理层, 将请求拆分成原子请求,并将原子请求回来的数据转化成用户需要的数据
3.微服务原子层(RPC)
提供某个微服务的增删改查,进行原子性操作
4.微服务数据层
对每个微服务进行数据持久化
5.轻量级通信
HTTP
RPC
6.去中心化管理
7.微服务注册
8.微服务发现
9.微服务配置中心
![3145530-51db12e7ffbb32aa.jpg](https://i-blog.csdnimg.cn/blog_migrate/30d6c1f23ba66d50471ebbb28fba435f.webp?x-image-process=image/format,png)
聚合层面里的问题
![3145530-92436aa9653b1b43.jpg](https://i-blog.csdnimg.cn/blog_migrate/533efc0442936025bd485031b11b2e88.webp?x-image-process=image/format,png)
聚合层拆分原理
![3145530-df6f8f9cf045e094.jpg](https://i-blog.csdnimg.cn/blog_migrate/1d4e507215b6bb136acebcc099395386.webp?x-image-process=image/format,png)
微服务聚合层再次拆分
![3145530-ed8320a6cfbfe1d9.jpg](https://i-blog.csdnimg.cn/blog_migrate/26c646374a5e0cd517fbadd5d916eb2f.webp?x-image-process=image/format,png)
再次拆分聚合层之后优点
![3145530-1fc7f232436ecca8.jpg](https://i-blog.csdnimg.cn/blog_migrate/0f556cfbd4614976aea3d1a1de2f7adf.webp?x-image-process=image/format,png)
轻量级通信协议
1、HTTP/HTTPS
2、RPC(Thrif, gRpc,dubbo)
SCF
私有协议
3、消息队列
4、HAL
![3145530-ddcf0a29421ed110.jpg](https://i-blog.csdnimg.cn/blog_migrate/d6bdedb6f6064b072eb917226ea10a8f.webp?x-image-process=image/format,png)
转转的轻量级通信选择
![3145530-f00e673a7a9c6b2f.jpg](https://i-blog.csdnimg.cn/blog_migrate/8eff8970704f6610d7a7e5ed08820a6b.webp?x-image-process=image/format,png)
微服务的发现和注册
spring cloud 对于zookeeper的支持不如对Eureka,Eureka更为完善
![3145530-55f13ed3486436af.jpg](https://i-blog.csdnimg.cn/blog_migrate/c3ff7b1d6c583d6dc157e15b8800f975.webp?x-image-process=image/format,png)
![3145530-34695bbfd6f581ef.png](https://i-blog.csdnimg.cn/blog_migrate/023fcd5d8c8b94af22249dad78840e83.webp?x-image-process=image/format,png)
踢出bug服务器
因为微服务和注册中心是应用心跳来链接的,在某个心跳间隙的请求需要重制到其他服务器上 ,一般设置timeout,超时后直接重连另外的服务器
![3145530-50e477fa4a0958f1.jpg](https://i-blog.csdnimg.cn/blog_migrate/d03868e5494cd9915dc0aae5bf9de9fa.webp?x-image-process=image/format,png)
柔性可用的必要性
![3145530-df68c8de8496168a.png](https://i-blog.csdnimg.cn/blog_migrate/604092a3a03cdd63f0ccc7bc9ae8ab2c.webp?x-image-process=image/format,png)
![3145530-6d5c03b8ce86828f.jpg](https://i-blog.csdnimg.cn/blog_migrate/874d25e62c24b0d01a6b6cd0239c9859.webp?x-image-process=image/format,png)
柔性可用的要求
![3145530-61964a02129b1b38.png](https://i-blog.csdnimg.cn/blog_migrate/4b6364dff899e700a5d3a207abf001a2.webp?x-image-process=image/format,png)
防止系统崩溃的二种策略
![3145530-2c3d104fecc6ced9.png](https://i-blog.csdnimg.cn/blog_migrate/ba1fe76fae002036bb016d972e7996f7.webp?x-image-process=image/format,png)
数据库降级
![3145530-634fe1ab3bb870fa.jpg](https://i-blog.csdnimg.cn/blog_migrate/702d785af61667757c055f8308006f56.webp?x-image-process=image/format,png)
系统降级
![3145530-3f86c41965e135f9.jpg](https://i-blog.csdnimg.cn/blog_migrate/e2a12fb3179ff2b35761e4fac209bb63.webp?x-image-process=image/format,png)
服务治理
![3145530-00d057bf9cc38818.png](https://i-blog.csdnimg.cn/blog_migrate/0a3f1963c7045d6efc891504f8d607fd.webp?x-image-process=image/format,png)
微服务监控框架
![3145530-9db1d31ff1276ae8.jpg](https://i-blog.csdnimg.cn/blog_migrate/52ea445f8734808cc621539f2ff41639.webp?x-image-process=image/format,png)
监控手段
![3145530-e8c30824d6b63f3f.png](https://i-blog.csdnimg.cn/blog_migrate/e634666b2346a490f4b6641346adfe01.webp?x-image-process=image/format,png)
监控项