java面试刷题------微服务

  1. 什么是 spring boot?
    是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

  2. spring boot优点
    如:
    独立运行
    简化配置
    自动配置
    无代码生成和XML配置
    应用监控
    上手容易

  3. spring boot 核心配置文件是什么?
    application 主要用于 Spring Boot 项目的自动化配置。
    bootstrap 使用

  4. spring boot 配置文件有哪几种类型?它们有什么区别?
    .properties 和 .yml,它们的区别主要是书写格式不同
    同样的配置中properties优先

  5. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
    @SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
    (1)@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
    (2)@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
    (3)@ComponentScan:Spring组件扫描。

  6. 开启 Spring Boot 特性有哪几种方式?
    1)继承spring-boot-starter-parent项目
    2)导入spring-boot-dependencies项目依赖

  7. Spring Boot 需要独立的容器运行吗?
    可以不需要,内置了 Tomcat/ Jetty 等容器。

  8. 运行 Spring Boot 有哪几种方式?
    1)打包用命令或者放到容器中运行
    2)用 Maven/ Gradle 插件运行
    3)直接执行 main 方法运行

  9. Spring Boot 自动配置原理是什么?
    注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。

  10. 什么是 Spring Boot Stater ?
    启动器是一套方便的依赖,没有描述,可以方便的一站式获取所需要的spring和相关技术
    常见stater会包含4个方面
    自动配置文件,根据classpath是否存在指定的类来决定是否要执行该功能的自动配置。
    spring.factories 非常重要 知道Spring Boot 找到指定的自动配置文件
    endpoint: 可以理解为一个admin 包含对服务的描述 界面 交互
    health indicator: 该statart提供的服务健康指标

  11. springboot常用的starter有哪些
    spring-boot-starter-web 嵌入式tomcat和web开发需要servlet和jsp支持
    spring-boot-starter-data-jpa 数据库支持
    spring-boot-starter-data-redis redis数据库支持
    spring-boot-starter-data-solr solr支持
    mybatis-spring-boot-starter 第三方集成starter

  12. Spring Boot Starter的工作原理
    1, springboot在启动时扫描项目所依赖的jar包 寻找spring.factories
    2, 根据spring.factories配置加载AutoConfigure类
    3, 根据@Conditional注解的条件,进行自动配置并将Bean注入到spring Context

  13. 为什么我们需要 spring-boot-maven-plugin?
    spring-boot-maven-plugin 提供了一些像
    jar 一样打包或者运行应用程序的命令。 spring-boot:run 运行你的 SpringBooty 应用程序。
    spring-boot:repackage 重新打包你的 jar 包或者是 war 包使其可执行 spring-boot:start 和
    spring-boot:stop 管理 Spring Boot 应用程序的生命周期(也可以说是为了集成测试)。
    spring-boot:build-info 生成执行器可以使用的构造信息。

  14. 什么是Spring Cloud?
    Spring cloud流应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。

  15. 服务注册和发现是什么意思?Spring Cloud如何实现?
    于所有服务都在Eureka服务器上注册并通过调用Eureka服务器完成查找,因此无需处理服务地点的任何更改和处理。

  16. 负载平衡如何实现的? Ribbon
    在消费端添加注解@LoadBalanced

  17. 服务雪崩 服务熔断 服务降级
    服务雪崩: 调用链中下游服务出现故障,导致上游的请求也会出现阻塞,服务崩溃,进而整个服务链都崩溃了
    服务熔断: 当下游服务因为某些原因变得不可用或者响应过慢时,上游服务为了保证自己整体服务的可用性,不再继续调用下游服务,直接返回,快速释放资源.如果目标服务情况好转则恢复调用
    服务降级: 当下游服务因为某些原因响应过慢,下游服务主动停掉一些不太重要的业务,快速释放资源,增加响应速度; 服务降级有很多策略: 开关降级,限流降级 熔断降级
    服务熔断只是服务降级的一种方式

  18. 什么是Hystrix?它如何实现容错?
    熔断器:当服务不可用的时候迅速返回一个错误而不是超时等待
    Fallback方法功能
    Feign自带熔断器

  19. spring Cloud相关模块
    Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
    Netflix Eureka:注册中心
    Netflix Hystrix:熔断器 容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
    Netflix Zuul:网关 边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。
    Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
    Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

  20. Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
    Zookeeper保证了CP(C:一致性,P:分区容错性),Eureka保证了AP(A:高可用)
    Zookeeper 一致性 Zookeeper集群leader有挂掉的情况,会重新选举新的leader,这个事件就不可用
    Eureka 各个节点 是平等的 客户端发现连接失败时,会自动切换到其他节点

  21. ribbon和feign区别
    1\依赖和注解不同
    2\ 服务指定位置不同 Ribbion是在@RibbonClient注解上生命 Feign则在定义抽象方法的接口中使用
    3\ 调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。 Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建http请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。

https://blog.csdn.net/lyhkmm/article/details/83180415
https://www.jianshu.com/p/63ad69c480fe
https://www.cnblogs.com/3xmq/p/springboot.html
https://blog.csdn.net/moakun/article/details/82817757
https://blog.csdn.net/panhaigang123/article/details/79587612
https://blog.csdn.net/zl1zl2zl3/article/details/83715633
https://blog.csdn.net/qq_22182989/article/details/80562141
https://blog.csdn.net/forezp/article/details/88149085
https://blog.csdn.net/qq_31263721/article/details/87625871

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值