应用架构从单体架构、SOA架构到微服务架构、服务网格架构、Serverless架构的演变。
单体架构与微服务架构在架构演变中较为成熟。
1.单体架构
应用程序会耦合多个子模块,子模块相互配合才能完成特定领域的业务功能。
用户通过浏览器访问业务功能;用Apache服务器作为前端的负载均衡器,整体后端业务被通过一个War包部署到Tomcat集群;业务功能可以整体扩展,DB共用一个数据库。
2.微服务架构
简单定义为一堆松散耦合的组件,他们在一起工作执行任务;这些轻量级的组件可以通过各种语言(java、python、PHP)完成开发,并且可以使用各种协议(HTTP、HTTPS、JMS)进行通信,大多数微服务通过REST API暴露服务,完成跨平台服务调用。
微服务架构遵循“高内聚、低耦合”的架构设计原则。
客户端App和浏览器:微服务的服务对象,功能体验者
负载均衡器:通常指nginx和SLB等
API Gateway:通常指业务网关。常规的技术栈包括springcloud gateway和zuul等
Web服务:通常指RESTful API服务。他通过后台管理系统统一配置API的路由信息,并实时将路由信息推送到由API Gateway,API Gateway将RESTful API通过统一的域名暴露给App或者浏览器
Web服务与微服务通过RPC通信,也可以通过HTTP通信,API Gateway也可以直接与微服务通信,比如springcloud gateway可同时支持dubbo和RESTful API通信。