目录
01
微服务的概念
02
SpringCloud
03
实战
war
10%
Module A
Web UI
10%
Module B
DataBase
80%
Module C
Module C系统资源占用率过高,整个应用需要水平扩展
Load Balance
war
war
Web UI
Web UI
10%
10%
80%
Module A
Module B
Module C
10%
10%
80%
Module A
Module B
Module C
DataBase
水平扩展后,Module A与Module B产生了资源浪费
系统资源浪费
系统水平扩展后带来了资源浪费
部署效率太低
每修改一个模块,都需要部署整个系统
技术选型单一
每个模块必须是相同的技术选型
稳定性不高
单一进程中,如果出现内存泄露,整个进程都会垮掉
后期维护困难
随着功能的增加,项目越来越臃肿,开发人员迭代后维护更困难
什么是微服务
微服务是一种架构风格,简单点说就是将一个完整的应用按照一定的规则拆分成多个不
同的服务,每个服务都能独立地进行开发、部署、扩展。各个微服务之间是松耦合的。
每个服务运行在独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(通常
基于HTTP协议的RESTfulAPI)。每个微服务仅关注于完成一件任务并很好地完成该任
务。
特点
• 小且专注做一件事情
• 轻量级的通信
• 松耦合,独立部署
系统资源浪费---------(业务模块单独部署,针对业务横向扩展)
系统水平扩展后带来了资源浪费
部署效率太低---------(业务模块单独部署,修改单个业务模块只需重启这一个服务)
每修改一个模块,都需要部署整个系统
技术选型单一---------(各业务模块之间通过轻量级api调用,并不关心是用什么技术实现)
每个模块必须是相同的技术选型
稳定性不高---------(业务部署在独立的进程中,即使某一进程崩溃,也不会拖垮整个项目)
单一进程中,如果出现内存泄露,整个进程都会垮掉
后期维护困难---------(业务独立开发,开发人员只需专注于独立的业务)
随着功能的增加,项目越来越臃肿,开发人员迭代后维护更困难
Web UI
service gateway
Service
Registry
service1
service1
service2
service1
service3
service1
...
service1
DB1
DB2