论述微服务和分布式

集中式框架、分布式框架和微服务概要:

在系统架构与设计的实践中,从宏观上可以总结为三个阶段:

  • 集中式架构:就是把所有的功能、模块都集中到一个项目中,部署在一台服务器上,从而对外提供服务(单体架构、单体服务、单体应用);
    直白一点:就是只有一个项目,只有一个war;
  • 分布式架构:就是把所有的功能、模块拆分成不同的子项目,部署在多台不同的服务器上,这些子项目相互协作共同对外提供服务。
  • 微服务:微服务是系统架构上的一种设计风格,主旨是将一个原本独立的系统拆分成对各小型的服务,这些小型服务都可以独自在进程中运行,服务之间通过基于HTTP的RESTFUL API进行通信协助。(由于各个独立的服务模块之间使用的是基于HTTP的JSON作为数据通信协作的基础,所以微服务中的模块开发时可以使用不同的语言)

举例:
集中式项目:单体应用,只有一个war包
分布式项目:拆分,(项目→订单模块→用户模块等),模块化分布式应用

经典面试题:

分布式和微服务有什么区别?

分布式,是将一个巨大的系统划分成多个小模块,这点跟微服务是一样的,都是将系统进行拆分,部署到不同的机器上。

本质区别:目标不同!

分布式目标:访问量太大一台服务器承受不了,或者成本问题,不得不使用多台服务器来完成服务的部署!

微服务目标:只是将各个模块拆分开来,不会相互受影响,比如模块的升级或者出现BUG或者重构等等等等都不要影响到其他模块。

注意:

  1. 微服务也可以在一台机器上部署。
  2. 分布式也是微服务的一种,微服务也属于分布式。

微服务与Spring-Cloud 的关系或区别?

微服务只是一种项目的架构方法、架构理念,或者说是一种概念,就如同我们的MVC架构一样,那么Spring Cloud 便是对这种架构方法的技术实现。

微服务一定要使用Spring Cloud吗?

微服务只是一种项目的架构方式、架构理念,所以任何技术都可以实现这种架构理念,只是微服务架构里面有很多问题需要我们去解决,比如:负载均衡,服务的注册与发现,服务调用,服务路由,服务熔断等等一系列问题,Spring Cloud 帮我们做了这些事情,Spring Cloud将处理这些问题的的技术全部打包好了。

你可能感兴趣的:(微服务-Netflix)