1,单体架构
垂直升级:4核16GB -> 8核64G
水平扩展:一台服务器扩展成多台
存在以下几个问题
1,提升的性能是有限的
2,更新,维护成本非常高,对于系统中要修改或增加的功能,整个发布的流程非常麻烦
3,某一模块出现bug,就会影响整个系统
2,垂直应用架构
根据业务边界拆分服务,每一个功能称为一个服务,将应用拆分成互不相干的几个应用(不涉及到多个服务之间的通信)
存在以下问题
1,公共部分要部署多份,对公共部分的修改,部署,更新都需要重复的操作(例:用户管理模块每个服务都需要有相应的业务代码,而且对应增删改查后各模块都需要同步更新),带来比较大的成本,为了解决这一问题,接下来就进入分布式应用架构阶段
3,分布式应用架构
在这个阶段里,将服务内部公用的模块抽取出来,部署成独立的服务,那么需要解决服务之间高效的通信问题
rpc协议:规定了数据的格式和传输的方式
分布式应用架构阶段涉及到的问题:
1,服务越来越多,服务如何被发现
2,服务越来越多,服务如何被治理
3,服务之间如何实现高效的通信
4,微服务架构阶段
微服务架构阶段主要解决的几个问题:
1,服务的注册和发现:这么多服务如何注册,这么多服务如何被发现
2,服务之间的高效调用:使用rpc或者http进行通信
3,服务治理:服务权重,负载均衡,服务熔断,限流等等一些服务治理方面的问题