• Spring Boot / Spring Cloud 常见面试题


    什么是 spring boot?

            SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。

    为什么要用 spring boot?

    • Spring Boot使编码变简单

    • Spring Boot使配置变简单

    • Spring Boot使部署变简单

    • Spring Boot使监控变简单

    spring boot 配置文件有哪几种类型?它们有什么区别?

           Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件。相对于properties文件而言,yml文件更年轻,也有很多的坑。可谓成也萧何败萧何,yml通过空格来确定层级关系,使配置文件结构跟清晰,但也会因为微不足道的空格而破坏了层级关系。

    spring boot 有哪些方式可以实现热部署?

    SpringBoot热部署实现有两种方式:

    1.  使用spring loaded
      1. <build>
      2. <plugins>
      3. <plugin>
      4. <groupId>org.springframework.bootgroupId>
      5. <artifactId>spring-boot-maven-pluginartifactId>
      6. <dependencies>
      7. <dependency>
      8. <groupId>org.springframeworkgroupId>
      9. <artifactId>springloadedartifactId>
      10. <version>1.2.6.RELEASEversion>
      11. dependency>
      12. dependencies>
      13. plugin>
      14. plugins>
      15. build>

           添加完毕后需要使用mvn指令运行:  

           首先找到IDEA中的Edit configurations ,然后进行如下操作:(点击左上角的"+",然后选择maven将出现右侧面板,在红色划线部位输入如图所示指令,你可以为该指令命名(此处命名为MvnSpringBootRun))
       


      点击保存将会在IDEA项目运行部位出现,点击绿色箭头运行即可

    2. 使用spring-boot-devtools
      1. <dependency>
      2. <groupId>org.springframework.bootgroupId>
      3. <artifactId>spring-boot-devtoolsartifactId>
      4. dependency>
    3.  我自己使用的是 jrbel

    jpa 和 hibernate 有什么区别?

    • JPA Java Persistence API,是Java EE 5的标准ORM接口,也是ejb3规范的一部分。
    • Hibernate,当今很流行的ORM框架,是JPA的一个实现,但是其功能是JPA的超集。

    什么是 spring cloud?

            Spring Cloud 就是致力于分布式系统、云服务的框架。

            Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具,例如:

    • 配置管理

    • 服务注册与发现

    • 断路器

    • 智能路由

    • 服务间调用

    • 负载均衡

    • 微代理

    • 控制总线

    • 一次性令牌

    • 全局锁

    • 领导选举

    • 分布式会话

    • 集群状态

    • 分布式消息

    • ......

    spring cloud 断路器的作用是什么?

            在Spring Cloud中使用了Hystrix 来实现断路器的功能,断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决,如果问题似乎已经得到纠正,应用程序可以尝试调用操作。

          断路器增加了稳定性和灵活性,以一个系统,提供稳定性,而系统从故障中恢复,并尽量减少此故障的对性能的影响。它可以帮助快速地拒绝对一个操作,即很可能失败,而不是等待操作超时(或者不返回)的请求,以保持系统的响应时间。如果断路器提高每次改变状态的时间的事件,该信息可以被用来监测由断路器保护系统的部件的健康状况,或以提醒管理员当断路器跳闸,以在打开状态。

    spring cloud 的核心组件有哪些?

    1. 服务发现——Netflix Eureka
              
      一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。
    2. 客服端负载均衡——Netflix Ribbon
             
      Ribbon,主要提供客户侧的软件负载均衡算法。Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。
    3. 断路器——Netflix Hystrix
              
      断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正,应用程序可以尝试调用操作。
    4. 服务网关——Netflix Zuul
             
      类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。
    5. 分布式配置——Spring Cloud Config
             
      这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

  • 相关阅读:
    Android14之修改编译vendor.img(二百零七)
    儿童学生护眼台灯哪个牌子好?双十二儿童护眼台灯精选
    vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题)
    列式存储?OLAP?ClickHouse究竟是何方神圣
    vscode用密钥文件连接ssh:如果一直要输密码怎么办
    linux为所有用户安装conda
    Redis之缓存和数据库双写一致方案讨论解读
    一种新型侧信道攻击方法,影响大部分苹果 A&M 系列芯片
    Discrete Optimization课程笔记(3)—局部搜索
    HTML+CSS抗疫网页设计 疫情感动人物静态HTML网页 web前端开发技术 web课程设计 网页规划与设计
  • 原文地址:https://blog.csdn.net/qq_15700115/article/details/126144457