Java面试题分享-Springcloud

问:什么是springboot
答:用来简化spring应用的初始搭建以及开发过程,使用特定的方式来进行配置(properties或yml文件),创建独立的spring引用程序 main方法运行
嵌入的Tomcat 无需部署war文件,简化maven配置,自动配置spring添加对应功能starter自动化配置.

问:springboot自动装配是什么
答:spring 和 springMVC的问题在于需要配置大量的参数,spring 查看claspath上可用的框架已存在的应用程序的配置
在此基础上,springboot 提供了配置应用程序和框架所需要的基本配置,这就是自动配置。

问:什么是springboot stater
答:启动器是一套方便的依赖没描述符,它可以放在自己的程序中,你可以一站式的获取你所需要的spring和相关技术
而不需要依赖描述符的通过示例代码搜索和复制黏贴的负载。例如,如果你想使用sping和JPA访问数据库
只需要你的项目包含spring-boot-starter-data-jpa依赖项你就可以完美进行

问:springboot常用的starter有哪些
答:1)spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
2)spring-boot-starter-data-jpa 数据库支持
3)spring-boot-starter-data-redis redis数据库支持
4)spring-boot-starter-data-solr solr支持
5)mybatis-spring-boot-starter 第三方的mybatis集成starter

问:springboot自动配置的原理
答:在spring程序main方法中添加 @ SpringBootApplication 或者 @ EnableAutoConfiguration
会自动去maven中读取每个starter中的spring.factories文件
该文件里配置了所有需要被创建spring容器中的bean

问:springboot读取配置文件的方式
答:springboot默认读取配置文件为application.properties或者是application.yml

问:springboot集成mybatis的过程
答:添加mybatis的starter maven依赖

org.mybatis.spring.boot
mybatis-spring-boot-starter
1.2.0

在mybatis的接口中 添加@Mapper注解
在application.yml配置数据源信息

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

问:什么是微服务
答:以前的模式是所有的代码在同一个工程中,部署在同一个服务器中,同一个项目的不同模块不同功能互相抢占资源,微服务将工程根据不同的业务
规则拆分成微服务,微服务部署在不同的机器上,服务之间进行相互调用,Java微服务的框架有 dubbo(只能用来做微服务),spring cloud(提供了
服务的发现,断路器等)

问:REST是什么
答:是一种软件架构风格,在REST中的一切都被认为是一种资源,每个资源由URI标识,使用统一的接口处理资源,如HTTP请求中的POST,GET,PUT,DELETE
类似创建读取更新和删除操作,无状态,每个请求是一个独立的请求,REST原则:连接无状态,有一致接口,资源均有独一无二的URI,传输的内容是
超媒体如json。

问:springcloud如何实现服务的注册和发现
答:服务在发布时 指定对应的服务名,服务名包括了IP地址和端口,将服务注册到注册中心eureka或者zookeeper,这一过程是springcloud自动实现
只需要在main方法添加 @ EnableDisscoveryClient,同一个服务修改端口就可以启动多个实例。

问:springcloud中的组件有那些
答:独挑大梁,独自启动不需要依赖其它组件
1)Eureka,服务注册中心,特性有失效剔除、服务保护
2)Dashboard,Hystrix仪表盘,监控集群模式和单点模式,其中集群模式需要收集器Turbine配合
3)Zuul,API服务网关,功能有路由分发和过滤
4)Config,分布式配置中心,支持本地仓库、SVN、Git、Jar包内配置等模式
润物无声,融合在每个微服务中、依赖其它组件并为其提供服务
1)Ribbon,客户端负载均衡,特性有区域亲和,重试机制
2)Hystrix,客户端容错保护,特性有服务降级、服务熔断、请求缓存、请求合并、依赖隔离
3)Feign,声明式服务调用本质上就是Ribbon+Hystrix
4)Stream,消息驱动,有Sink、Source、Processor三种通道,特性有订阅发布、消费组、消息分区
5)Bus,消息总线,配合Config仓库修改的一种Stream实现,
6)Sleuth,分布式服务追踪,需要搞清楚TraceID和SpanID以及抽样,如何与ELK整合

问:springcloud和dubbo的区别
答:springcloud服务注册中心是Spring Cloud Netflix Eureka
dubbo的注册中心一般是zookeeper
dubbo只是类似Netflix的一个子集只有注册中心,其他springcloud组件没有
springcloud的调用方式是REST API
dubbo的调用方式是RPC
服务提供方与调用方接口依赖方式太强
我们为每个微服务定义了各自的service抽象接口
并通过持续集成发布到私有仓库中
调用方应用对微服务提供的抽象接口存在强依赖关系
REST方式的服务依赖要比RPC方式的依赖更为灵活
Dubbo的文档可以说在国内开源框架中算是一流的,非常全,并且讲解的也非常深入
国内开发者来说,阅读起来更加容易上手

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值