单体架构VS微服务架构
单体架构:一个包含有所有功能的应用程序
- 优点:架构简单、开发部署简单
- 缺点:复杂性高、业务功能多、部署慢、扩展差、技术升级困难
如上示意图,应用前端页面,后台所有模块功能都放在一个应用程序中,并部署在一台服务器上
微服务架构:多个服务,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制。每个服务独立部署,服务可用不同的语言开发,使用不同的数据存储技术。
- 优点:服务易于开发、维护;微服务启动较快、部署简单;技术栈不受限
- 缺点:运维要求高;分布式天然具有复杂性(比如服务间通信、事务控制)
- 适用场景:大型、复杂的项目、需要快速迭代
如上示意图,前台页面部署在nginx中,通过后台网关负载均衡调用不同的模块服务,每个服务为了高可用都是集群部署,并且服务注册在配置服务器中