写点什么

单体应用与微应用典型架构比对

作者:编程江湖
  • 2021 年 12 月 27 日
  • 本文字数:654 字

    阅读完需:约 2 分钟

随着云化时代的到来,软件服务架构也从传统的单体架构向微服务架构转变,微服务架构发展的如火如荼,那么单体架构和微服务架构区别在哪里呢?

单体应用典型架构

在典型单体应用架构中,我们会横向部署多个应用,用来支撑系统的吞吐量。为了实现负载均衡,使用反向代理软件(Nginx)把请求均匀分发到每个 Tomcat 中。

为了降低数据库的压力,我们引入分布式缓存,把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。

为了进一步降低数据库压力,我们把数据库划分为读库和写库,读库可以有多个,通过同步机制把写库的数据同步到读库,实现数据同步。

单体应用的典型架构如下:



微应用典型架构

为了解决单个 Nginx 的瓶颈,我们引入 F5,F5 是工作在网络第四层的负载均衡解决方案,可对 TCP 请求或更高层级的网络协议进行转发,实现对多个 Nginx 的均衡负载。

同时我们业务进行拆分,拆分成应用和服务。大数据培训应用负责满足用户的使用需求,每个应用分别负责具体的业务场景,相互之间可以做到独立升级迭代。可复用的功能代码单独抽取出来形成服务,每个服务也可以单独进行升级。当然各应用和服务之间的通讯少不了 ESB 统一访问协议了。应用统一通过 ESB 来访问后端服务,服务与服务之间也通过 ESB 来相互调用,以此降低系统的耦合程度。

在数据库层面,传统数据库不适用于复杂的查询场景,需要根据具体场景进行拆分选用合适的组件。如对于海量文件存储,可通过分布式文件系统 HDFS 解决,对于 key value 类型的数据,可通过 HBase 和 Redis 等方案解决。对于全文检索场景,可通过搜索引擎如 ElasticSearch 解决。

微应用的典型架构如下:



用户头像

编程江湖

关注

IT技术分享 2021.11.23 加入

还未添加个人简介

评论

发布
暂无评论
单体应用与微应用典型架构比对