介绍
1) 微服务是系统架构的一种设计风格
2)将一个独立的系统拆分成多个小型服务;每一个小型服务,专注完成系统中的某一项业务功能,职责单一;并且每一个服务都是一个独立项目,可以独立测试、开发部署。
3)每个服务之间通过基于 http 的 Resuful AP 进行通信协作;基于 HTTP 的 JSON 作为数据通信协作的基础,所以这些微服务也可以使用不同的语言来开发;
分布式架构与微服务区别
1)分布式就是将一个单体应用划分为多个模块(这一点和微服务一样,都是把系统进行拆分),部署到不同服务器上,因为一台服务器承受不了这么大的访问压力。分布式各个模块通过接口进行数据交互,其实分布式也是一种微服务,都是把模块拆分成独立的单元,提供接口来调用。他们的本质区别是什么呢?
2)分布式架构的目标是什么?就是访问量很大,一台机器承受不了,或者是成本问题,不得不使用多台机器来完成服务的部署。
3)微服务的目标是什么?各个模块拆分开来,职责单一,互不影响。比如模块的升级或者出现bug或者是重构等等都不会影响其他模块,微服务它是可以部署在一台机器上;各个模块都放在一个服务器上;
4)但是:分布式也是微服务的一种,微服务也属于分布式;但是他们的目标不一样;
微服务 与 SpringCloud 的关系或区别
微服务只是一种项目的架构方式、架构理念,就如同我们说的 MVC 架构一样,SpringCloud 就是架构方式的技术具体实现。
微服务一定要使用 Spring Cloud 吗
1)微服务只是一种架构方式、架构理念,所以任何技术都可以实现这种架构理念。只是微服务架构里面有很多问题需要我们去解决,比如:负载均衡、服务的注册与发现、服务调用、服务路由、服务熔断等等一系列问题。
2)而 SpringCloud 就帮我们做了这些事情,SpringCloud 将处理这些问题的技术全部打包好,我们只需要开箱即用;