微服务及SpringCloud的一些面试问题
soa和微服务的区别
soa:面向服务的框架,着重于将应用系统根据不同的业务模块拆分不同的服务,并通过这些服务定义好的接口联系起来。它是一种粗粒度,松耦合的框架,主要解决的是服务重复性问题。
微服务:微服务是soa架构下的最终产物,它相对soa来说对系统的拆分更加彻底,拆分粒度更细,拆分后的服务都可以单独的运行。微服务主要解决的是服务的高耦合问题,通过降低服务之间的耦合度来把服务分割的更彻底,每个服务都可以不依赖于其他服务而独立运行,当一个服务出问题时,对其他服务并不会造成影响。
soa和微服务都是分布式的具体实现思想。
你是怎么理解微服务的?
微服务顾名思义就是将系统拆分为一个个可以独立部署、水平扩展、独立运行的细微服务。
使用微服务的思想通过对单体架构的系统进行细粒度的拆分,从而降低各个服务之间的耦合度,单个服务中如果出现问题而不会对其他服务产生影响。并且通过对系统的拆分,会极大的解决原单体架构系统中的有些业务运行速度过慢而对其他业务造成的影响。
什么是SpringCloud
SpringCloud可以通俗的理解为整合各个分布式基础设施的工具箱,它是一系列框架的有序集合,注重于服务治理。
微服务架构的优点和缺点有哪些?
微服务的主要作用是大型业务系统进行细粒度的拆分,从而降低项目开发时某一模块的开发对其他模块业务开发的影响,可以将项目中的各个模块更快地上线落地,相对传统的单体架构中一块出问题其他都会被影响,微服务带来的是更加敏捷的更新维护,当其中一个服务出问题时,其他服务不会受到影响。但是当系统拆分的太细致,造成的运维成本也相对的更大,梳理各服务的功能调用逻辑更麻烦,本来只需要对一个系统的维护现在变相的变成对多个系统的维护,这样的成本会大大的增大。
SpringCloud解决了什么问题?
SpringCloud利用SpringBoot的开发便利性简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、熔断器、数据监控、负载均衡等,都可以利用SpringBoot的开发风格做到一键部署和启动。