1.什么是微服务?
如果我们要开发一个功能简单的学生管理系统,只需要在一个项目中就可以很轻松地完成。但是像淘宝,京东这种大型项目,里面有特别多的功能,如果我们把这些功能放在一个项目里面完成,那么这个项目将会异常庞大,耦合度会很高,开发和维护的难度会特别大,这并不是我们期待的。
这个问题就可以通过微服务来解决。把一个应用程序按照功能划分为一个个小的服务。服务之间互相协调、互相配合,完成功能,为用户提供最终价值。每个服务都是独立的,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。
2.分布式架构带来的问题
如果我们采用微服务的架构,就会面临一系列的问题。
- 服务与服务之间怎么通信
- 如果有很多服务,怎么管理
- 服务的健康状态如何感知
- 等等
3.落地实现分布式架构
最出名的两种方案:SpringCloud,SpringCloudAlibaba