单体应用架构VS微服务应用架构

单体应用架构

1、一个应用中包含了应用程序所有的功能(比如:页面、代码、配置等)把应用程序打包成war包、jar包部署到Tomcat中,通常称之为单体架构;

2、优点
(1) 易于开发、测试、部署;单个应用即包含所有功能,不涉及多个应用的互联互调,便于在团队之间开发与测试,并且只需打包成war、jar包部署到Tomcat即可,运维起来比较方便;
(2)易于整体扩展:当应用负载压力过大的时候,将应用复制几份分别部署在不同的服务器上,再通过负载均衡即可提高应用的并发能力;

3、缺点
(1)复杂性高:由于是单个应用,所以整个模块包含的内容非常多,导致模块的边界模糊,依赖关系不清晰,代码参差不齐,混乱在一起,以至于每次修改代码都可能造成bug;

微服务架构

1、微服务架构的核心就说将传统的单体架构,应用划分为一个个的服务,彻底地解耦合,每一个微服务提供一个功能,即一个服务只做一件事情,服务之间采用HTTP通信机制(通常采用的是HTTP的RestFul API进行通信);

2、从技术的角度看,微服务架构更像是一种小而独立的进程,能够单独启动或者是销毁,并且每个服务都可以拥有自己独立的数据库;

3、优点
(1)单个微服务启动较快
(2)易于开发和维护:每一个微服务只管自己特定的功能,所以业务清晰,代码量少;开发和维护单个微服务相对简单;
(3)局部修改容易部署:单体架构只要一修改就得重启整个应用;而微服务架构的话就解决了这一问题,修改某个微服务后只需要重启该微服务即可~
(4)技术栈不受限制:在微服务架构中,可以结合业务和团队特点,合理的选择技术栈;

缺点:
(1)运维要求高
(2)接口调整成本高

以下是微服务架构主要的一个技术栈

在这里插入图片描述

发布了26 篇原创文章 · 获赞 9 · 访问量 735

猜你喜欢

转载自blog.csdn.net/z19950712/article/details/104062639