T31Day10技术架构选型

本文探讨了为何进行技术选型,着重分析了单体应用、SOA与微服务的区别,指出微服务强调服务组件化和独立部署。此外,还介绍了数据访问层的选择,如Mybatis框架和数据库连接池的作用。接着提到了消息中间件,如MQ的使用,以及远程通讯框架和网关层技术在微服务架构中的重要性。
摘要由CSDN通过智能技术生成

一、关于技术选型

为什么要进行技术选型:

        降低研发成本,提高研发效率。

1.微服务架构的诞生

单体应用:

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

缺点:

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

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

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

SOA应用:

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

缺点:

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

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

微服务:

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

2.SOA和微服务的思维区别

SOA:

         因为单体巨石应用无法灵活扩展,且部署困难。

        自上而下,从运维侧视角出发,更多聚焦可维护性,兼顾可扩展性,从前后端分离切入。  

微服务:

        因SOA服务粒度太粗,难以有效扩展,微服务应运而生。

        自下而上,从产品视角出发,更多聚焦可扩展性, 兼顾可维护性。

3.微服务分层架构图

 二、数据访问层选型

所有的数据访问框架都在解决如下两个问题

①数据库连接如何管理?

②数据库查询数据和JAVA对象如何高效映射?

1.Mybatis框架执行流程

2.数据库连接池选型

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

 三、消息中间件选型

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

常见MQ比对

MQ选型依据 :

        功能不具备一票否决权

        重性能、重扩展

        技术栈、团队驾驭能力

四、远程通讯框架选型

五、网关层技术选型

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值