单体架构:业务的所有功能集中在一个项目中
优点:架构简单,部署成本低
缺点:耦合度高
分布式架构:根据业务功能进行系统拆分,每个业务模块作为独立项目开发
优点:降低耦合,有利于服务升级拓展
缺点:部署困难,维护困难
微服务是一种良好的分布式架构方案
单一职责:一个服务对应一个业务,避免重复业务开发
面向服务:微服务对外暴露业务接口
自治:团队独立,技术独立,数据独立,部署独立
隔离性强:服务之间做好隔离,容错,降级,避免出现级联问题
微服务结构
服务网关->服务集群->注册中心->配置中心
SpringCloud
注册中心:Eureka,Consul
服务远程调用:Feign(http协议)
配置中心:SpringCloudConfig
服务网关:SpringCloudGateway,Zuul
服务监控和保护:Hystrix
SpringCloudAlibaba
注册中心:Eureka,Nacos
服务远程调用:Feign(http协议),Dubbo
配置中心:SpringCloudConfig,Nacos
服务网关:SpringCloudGateway,Zuul
服务监控和保护:Sentinel