孤尽T31项目Day10

孤尽T31项目Day10

技术架构选型

1 技术选型

1.1 微服务架构的产生—巨石应用

第一代单体应用,所有的模块打包到一起部署运行;
例如打包一个War包放到一个Tomcat下运行,这种架构
也叫巨石型应用架构,在开发小型项目上有独特优势:
易于调试、部署,运维方便。

缺点

1、不可靠。任何模块的一个bug,可能拖垮整个应用
2、单维扩展。只能通过运行更多的服务器水平扩展,
而不同的应用服务对资源的需求不同
3、不可持续发展。引入新的框架或语言需要重构所有
业务模块,往往需要在初期就选定技术栈
在这里插入图片描述

1.2 微服务架构的产生—SOA

SOA(Service Oriented Architecture),面向服务架构, 它是
一种设计方法,设计上通常是自上而下的,服务间松散耦合。ESB
集成不同协议的服务,做消息的转化、解释、路由从而联通各个服
务,解决企业通信问题,服务松耦合、可扩展

缺点

1、ESB的存在并没有根本解决单体巨石应用的一些问题
2、SOA更多的面向企业服务,服务拆分粒度很大,更多的是为了复用
在这里插入图片描述

1.3 微服务架构的产生—微服务

微服务,是去中心化的SOA拓展,强调服务彻底的组件化,一个组件就是一个产品,服务切分力度更小,设计上更多的是自下而上的。
服务间通过轻量化的协议进行通信,并根据服务本身需要独立化部署
在这里插入图片描述

1.4 SOA和微服务的思维区别

SOA:
因为单体巨石应用无法灵活扩展,且部署困难。
自上而下,从运维侧视角出发,更多聚焦可维护性,
兼顾可扩展性,从前后端分离切入。
微服务:
因SOA服务粒度太粗,难以有效扩展,微服务应运而生。
自下而上,从产品视角出发,更多聚焦可扩展性,
兼顾可维护性。

1.5 微服务分层架构图

在这里插入图片描述

2 Spring

2.1 Spring Cloud 家族

在这里插入图片描述

3 数据访问层选型

3.1 数据访问层框架解决的问题

数据库连接如何管理、数据库查询数据和Java对象如何高效映射

3.2 框架选择

JDBC:性能高、操作麻烦
MyBatis:我的SQL我做主
MyBatis Plus:你的SQL你做主,我为你服务

3.2.1 Mybatis框架执行流程解析

在这里插入图片描述

3.3 数据库连接池选型

(1)定义:JDBC连接池,解决需要自己手动建立连接、关闭连接、连接复用的问题
(2)常用的连接池:Druid、HikariCP、DBCP、Tomcat-jdbc、C3P0

4 消息中间件选型

4.1 MQ消息队列简介

消息队列:在消息的传输过程中保存消息的容器,生产者和消费者不直接通讯,依靠队列保证消息的可靠性,避免了系统间的相互影响。
消息模式分为P2P模式、订阅模式

4.2 如何选型

功能不具备一票否决权;重性能、重扩展;技术栈、团队驾驭能力

4.3 来自阿里的RocketMQ

在这里插入图片描述

5 远程通信框架选型

5.1 RPC运行期状态与流程

在这里插入图片描述

5.2 RPC框架核心技术点

与注册中⼼集成与配置中心集成与链路跟踪集成
服务发布和引⽤通信协议请求监控
服务调⽤⽅式IO线程模型容错降级
路由寻址超时机制租户泳道机制
序列化/反序列化重试机制

5.3 常用开源RPC框架

Feign、Dubbo、gRPC、Thrift

5.3.1 Feign框架调用流程分析

在这里插入图片描述

6 网关层技术选型

6.1 API网关的由来

1 微服务提供的API粒度与客户端所需的粒度不同
2 不同客户端需要不同的数据
3 微服务实例数量及其位置动态变化
4 服务划分会随着时间的推移变化
5 服务可能会使用多种协议,有些是非Web友好协议

6.2 网关的分类

流量网关业务网关
关注稳定安全服务级别流控
全局性流控服务级别流控
防止Web攻击服务降级与熔断
屏蔽工具扫描路由与负载均衡、灰度策略
黑白IP名单服务过滤、聚合与发现多级缓存策略
证书/加解密处理多级缓存策略

5.3 部署形式
单点网关、多点网关

附录-T31项目技术栈

●Spring Boot 2.3.2.RELEASE
●Spring Cloud Hoxton.SR8
●Spring Cloud Alibaba 2.2.5.RELEASE
●Mybatis 3.5.4
●Mybatis Plus 3.3.2
●Spring Security OAuth 2 2.2.4.RELEASE
●Vue 2.5.10
●Vuex 3.0.1
●IView 3.2.2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值