暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Spring Cloud面试题

东神殿下 2021-08-15
598

一、 什么是微服务架构

微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。


2. 为什么需要学习Spring Cloud

在项目开发中随着业务越来越多,导致功能之间耦合性高、开发效率低、系统运行缓慢难以维护、不稳定。微服务 架构可以解决这些问题,而Spring Cloud是微服务架构最流行的实现
  • 代码结构混乱:业务复杂,导致代码量很大,管理会越来越困难。同时,这也会给业务的快速迭代带来巨大挑战;

  • 开发效率变低:开发人员同时开发一套代码,很难避免代码冲突。开发过程会伴随着不断解决冲突的过程,这会严重的影响开发效率;

  • 排查解决问题成本高:线上业务发现 bug,修复 bug 的过程可能很简单。但是,由于只有一套代码,需要重新编译、打包、上线,成本很高。


3.SpringCloud的优缺点

优点:

  • 耦合度比较低。不会影响其他模块的开发。

  • 减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开发。

  • 配置比较简单,基本用注解就能实现,不用使用过多的配置文件。

  • 微服务跨平台的,可以用任何一种语言开发。

  • 每个微服务可以有自己的独立的数据库也有用公共的数据库。

  • 直接写后端的代码,不用关注前端怎么开发,直接写自己的后端代码即可,然后暴露接口,通过组件进行服务通信。

缺点:

  • 部署比较麻烦,给运维工程师带来一定的麻烦。

  • 微服务过多,治理成本高,不利于维护系统

  • 系统集成测试比较麻烦


总的来说优点大过于缺点,目前看来Spring Cloud是一套非常完善的分布式框架,目前很多企业开始用微服务、Spring Cloud的优势是显而易见的。因此对于想研究微服务架构的同学来说,学习Spring Cloud是一个不错的选择。

4.使用 Spring Boot 开发分布式微服务时,我们面临什么问题
(1)与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。

      (2)服务发现-服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。

      (3)冗余-分布式系统中的冗余问题。

     (4)负载平衡 --负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。

      (5)性能-问题 由于各种运营开销导致的性能问题。

      (6)部署复杂性-Devops 技能的要求。


二、Eureka

  什么是Eureka

  • Eureka作为SpringCloud的服务注册功能服务器,他是服务注册中心,系统中的其他服务使用Eureka的客户端将其连接到Eureka Service中,并且保持心跳,这样工作人员可以通过EurekaService来监控各个微服务是否运行正常。

Eureka怎么实现高可用

  • 建设集群,注册多台 Eureka ,然后把 SpringCloud 服务互相注册,客户端从 Eureka 获取信息时,按照Eureka 的顺序来访问。

什么是网关?

  • 网关相当于一个网络服务架构的入口,所有网络请求必须通过网关转发到具体的服务。

网关的作用是什么

  • 统一管理微服务请求,权限控制、负载均衡、路由转发、监控、安全控制黑名单和白名单等

 网关与过滤器有什么区别

  • 网关是对所有服务的请求进行分析过滤,过滤器是对单个服务而言。

 常用网关框架有那些?

  • Nginx  Zuul  Gateway

分布式配置中心有那些框架?

  • Apollo  zookeeper  springcloud config

 分布式配置中心的作用?

  • 动态变更项目配置信息而不必重新部署项目。

 SpringCloud Config 可以实现实时刷新吗?

  • springcloud confifig 实时刷新采用 SpringCloud Bus 消息总线。


文章转载自东神殿下,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论