孤尽训练营笔记分享-5/31

         今日学习了项目技术架构的选型,为方便统一对项目进行管理,首先了解为何要进行选型:

                ①降低开发成本        ②提升开发相率

一、项目分层介绍       

        

单体项目

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

缺点:

        1、不可靠。任何模块的一个bug,可能拖垮整个应用

        2、单维扩展。只能通过运行更多的服务器水平扩展, 而不同的应用服务对资源的需求不同

        3、不可持续发展。引入新的框架或语言需要重构所有 业务模块,往往需要在初期就选定技术栈

SOA(Service Oriented Architecture),面向服务架构

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

缺点

        1、ESB的存在并没有根本解决单体巨石应用的一些问题

        2、SOA更多的面向企业服务,服务拆分粒度很大,更多的是为了复用

  微服务架构:

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

比较:

        SOA: 因为单体巨石应用无法灵活扩展,且部署困难。 自上而下,从运维侧视角出发,更多聚焦可维护性, 兼顾可扩展性,从前后端分离切入。

        微服务: 因SOA服务粒度太粗,难以有效扩展,微服务应运而生。 自下而上,从产品视角出发,更多聚焦可扩展性, 兼顾可维护性。

微服务分层架构图

二 选型 

Spring 家族

 Spring Cloud 家族

数据访问层选型 

        一般选用Mybatis (我的SQL我做主)或者MyBatis PLUS(你的SQL你做主,我为你服务)

Mybatis框架执行流程解析

 数据库连接池选型

        定义:JDBC连接池,解决需要自己手动建立连接(TCP连接)、关闭连接、连接复用的问题。JDBC连 接池有一个标准的接口javax.sql.DataSource,常用的JDBC连接池如下

 消息中间件选型

 

 RocketMQ

远程通信框架选型 

        

        核心技术点

         调用分析

 常用开源远程通信框架综合对比

网关层技术选型 

 网关的分类:流量网关与业务网关

 网关部署形式:单节点网关与多点网关

业务网关技术选型

 Spring Cloud 体系自身的GateWay原理解析

 

 Spring Cloud GateWay流程分析

 

最终技术选型如下

后端:
    数据库:mysql  8.0.26
    数据库驱动:mysql-connector-java 8.0.26
    数据库连接池:druid 1.2.8
    非关系型数据库:redis 
    注册中心/配置中心:nacos 1.4.1
    spring家族:
        Spring Cloud Alibaba 2.2.5.RELEASE
        Spring Cloud Hoxton.SR8
        Spring Boot 2.3.2.RELEASE
        安全认证框架:Spring Security OAuth 2 2.2.4.RELEASE
        远程通信调用:openFeign
        API网关:gateway
    反向代理:nginx 1.20.1
    消息中间件:rockMq 
    ORM框架:Mybatis Plus 3.3.2   
    
前端:
    ●Vue 2.5.1
    ●Vuex 3.0.1
    ●IView 3.2.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值