服务选型
曾经的技术选型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GjyeLuSg-1636378253985)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106155802533.png)]
微服务
微服务架构的产生——巨石应用
第一代单体应用,所有的War包放到一个Tomcat下运行。这种架构也叫巨石型应用架构,在开发小型项目上有独特优势:易于调试、部署,运维方便。
缺点:
- 不可靠。任何模块的一个bug,可能拖垮整个应用
- 单维扩展。只能通过运行更多的服务器水平扩展,而不同的应用服务对资源的需求不同
- 不可持续发展。引入新的框架或语言需要重构所有业务模块,往往需要在初期就选定技术栈
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aDlGG5uZ-1636378253987)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106163147552.png)]
微服务架构的产生-SOA
SOA(Service Oriented Architectrue),面向服务架构,它是一种设计方法,设计上通常是自上而下的,服务间松散耦合。ESB集合不同协议的服务,做消息的转换、解释、路由从而联通各个服务,解决企业通信问题,服务松耦合、可扩展
缺点:
- ESB的存在并没有根本解决单体巨石应用的一些问题
- SOA更多的面向企业服务,服务拆分粒度很大,更多的是为了复用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tPYrUeTm-1636378253988)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106162822703.png)]
微服务架构的产生-微服务
去中心化的SOA拓展,强调服务彻底的组件化,一个组件就是一个产品,服务切分力度更小,设计上更多的是自下而上的。服务间通过轻量化的协议进行通信,并根据服务本身需要独立部署
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qC0R2mgK-1636378253990)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106163535101.png)]
SOA和微服务的思维区别
SOA:
因为单体巨石应用无法灵活扩展,且部署困难。自上而下,从运维侧视角出发,更多聚焦可维护性,兼顾可扩展性,从前后端分离切入。
微服务:
因为SOA服务粒度太粗,难以有效扩展,微服务应运而生。自下而上,从产品视角出发,更多聚焦可扩展性,兼顾可维护性。
微服务分层架构图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iapYDNqq-1636378253992)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106163648329.png)]
Spring Boot build anything
- 方便的创建可独立运行的 spring 应用程序
- 直接内嵌 Tomcat Jetty 或 Undertow
- 简化了项目的构建配置
- 位 spring 及第三方库提高自动配置
- 提供生产级特性
- 无需生成代码或者进行XML配置
Netflix——掀起大规模微服务之风
由于
Netflix 为啥热衷于开源?
- 将自己的解决方案建立为行业标准和最佳实践
- 建立Netflix技术品牌
- 雇佣、留住和吸引顶级工程师
- 从共享生态中获得反馈输入并受益
Spring Cloud 家族
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wHramIaD-1636378253992)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106164221366.png)]
数据访问层选型
- JDBC的“烦恼”
- Mybatis执行流程解析
JDBC
原始的基于JDBC连接的数据库的操作
所有的数据访问框架都是在解决如下的两个问题
- 数据库连接如何管理
- 数据库查询数据和Java对象如何高效映射
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Ct9HC9W-1636378253994)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106164357552.png)]
Mybatis与Mybatis-plus
MyBatis——我的SQL我做主
Mybatis-plus——你的SQL你做主,我为你服务
Mybatis框架执行流程解析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gqk4ySWy-1636378253995)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106164605353.png)]
数据库连接池选型
定义:JDBC连接池,解决需要自己手动建立连接(TCP连接)、关闭连接、连接复用的问题。数据库连接池有一个标准的接口 javax.sql.DataSource,常用的JDBC连接池如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WMbJnRpV-1636378253996)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106164747048.png)]
T31项目数据访问层实践
MQ如何选型
简介
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyDzNrrQ-1636378253997)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106164947672.png)]
选型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rdv7IwYe-1636378253998)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106165044001.png)]
阿里的RocketMQ
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ieC6uMhP-1636378253999)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106165306799.png)]
远程通信框架选型
RPC运行期状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W4H3tQmn-1636378253999)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106165155272.png)]
RPC框架核心技术点
与注册中心集成 | 与配置中心集成 | 与链路追踪继承 |
---|---|---|
服务发布和引用 | 通信协议 | 请求监控 |
服务调用方式 | IO线程模型 | 容错降级 |
路由寻址 | 超时机制 | 租户泳道机制 |
序列化/反序列化 | 重试机制 |
- 远程通信框架要解决的问题
Fegin框架调用流程分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6qote84-1636378254000)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106165718323.png)]
常用开源远程通信框架综合对比
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CmfyKymE-1636378254001)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106165802055.png)]
网关层技术选型
- API网关的由来
- 网关的分类
- 网关的定义及功能
- API网关的技术选型
- API网关核心关注点
API网关的由来
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9x1FFKeW-1636378254002)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106170006586.png)]
网关的分类:流量网关和业务网关
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1nbnEiqH-1636378254003)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106170116787.png)]
API网关部署形式:单节点网关与多节点网关
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-67TfVnpU-1636378254004)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106170153667.png)]
开源网关图谱
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wrEeLZQM-1636378254004)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106170221749.png)]
业务网关技术选型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tU4l9lBI-1636378254005)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106170254431.png)]
Spring Cloud 体系自身的 GateWay 原理解析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v311A8H5-1636378254006)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106170338231.png)]
Spring Cloud GateWay流程分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JSW066LO-1636378254007)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106170428108.png)]
T31项目技术栈
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-anJJKksU-1636378254007)(C:\Users\Zyf\Desktop\T31作业\Day11 项目架构选型方案\项目架构选型方案.assets\image-20211106170634289.png)]
lBI-1636378254005)]
Spring Cloud 体系自身的 GateWay 原理解析
[外链图片转存中…(img-v311A8H5-1636378254006)]
Spring Cloud GateWay流程分析
[外链图片转存中…(img-JSW066LO-1636378254007)]
T31项目技术栈
[外链图片转存中…(img-anJJKksU-1636378254007)]