项目架构选型方案

项目架构选型方案

一 微服务结构产生的背景

1 单体应用:

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

易于调试、部署,运维方便

缺点:

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

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

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

2 SOA

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

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

3 微服务

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

3.1 SOA与微服务的区别

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

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

二 微服务分层架构图

Spring Cloud家族

三 项目开发中各种技术选型

1 数据访问层选型

 

1.1 Mybatis 的优势:

实现了sql语句与代码的分离;属于半自动化ORM框架

开发人手写SQL语句,方便优化

学习成本低,开发人员可以快速上手

1.2 数据库连接池选型

目前主流的是阿里巴巴的数据源连接池Druid和Hikaricp,Druid有完善的数据连接池监控功能,安全机制比Hikaricp更完善,Druid用的更多一些

2 消息中间件选型

这里选用RocketMQ

3 远程通信框架选型

3.1

RPC:字面上的意思是远程过程调用,本质上就是两个服务间相互调用

RPC运行期状态与流程

 

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

 

4 网关层技术选型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值