问题 springboot_SpringBoot和SpringCloud常见问题整理
一.什么是 spring boot?Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。二.为什么要用 spring boot?Spring优点:(1)独立运行Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署
一.什么是 spring boot?
Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
二.为什么要用 spring boot?
Spring优点:
(1)独立运行
Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
(2)简化配置
spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。
(3)自动配置
Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。
(4)无代码生成和XML配置
Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。
(5)应用监控
Spring Boot提供一系列端点可以监控服务及应用,做健康检测。
三.spring boot 核心配置文件是什么?
Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
application 主要用于 Spring Boot 项目的自动化配置。
有两种格式:.properties和.yml
四.spring boot 配置文件有哪几种类型?它们有什么区别?
1.两种类型
application 和 bootstrap 文件
2.区别
(1)bootstrap先加载,application后加载
(2)bootstrap是系统级别的一些参数配置,这些参数一般是不会变动的。
(3)application是应用级别的一些参数配置,主要用于Spring Boot项目的自动化配置。
3.bootstrap 配置文件的应用场景
①使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
②一些固定的不能被覆盖的属性
③一些加密/解密的场景;
五.spring boot 有哪些方式可以实现热部署?
1.Spring Loaded
2.Spring-boot-devtools
六.什么是 spring cloud?
1.什么是微服务
微服务是一种架构模式,叫微服务架构更合理,就是把一个系统中的各个功能点都拆开为一个个的小应用然后单独部署,同时因为这些小应用多,所以需要一些办法来管理这些小应用。
2.SpringCloud是什么
(1)Spring Cloud是一个微服务框架的规范,Spring Cloud提供的全套的分布式系统解决方案。
(2)Spring Cloud为微服务架构开发涉及的配置管理,服务治理,熔断机制,智能路由,微代理,控制总线,一次性token,全局一致性锁,leader选举,分布式session,集群状态管理等操作提供了一种简单的开发方式。
(3)Spring Cloud 为开发者提供了快速构建分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
七.spring cloud 断路器的作用是什么?
1.断路器的作用
类似熔断保险丝,各服务互相调用时,当某一服务由于网络原因或者自身原因出现问题时,通过断路器的故障监控,向调用方返回一个错误响应,而不是长时间的等待。这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。
2.断路器状态
(1)完全打开:一定时间内 达到一定的次数无法调用 并且多次检测没有恢复的迹象 断路器完全打开,那么下次请求就不会请求到该服务
(2)半开:短时间内有恢复迹象,断路器会将部分请求发给该服务。当能正常调用时断路器关闭。
(3)关闭:当服务一直处于正常状态 能正常调用 断路器关闭
八.spring cloud 的核心组件有哪些?
1.Eureka:服务注册于发现。
2.Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。
3.Ribbon:实现负载均衡,从一个服务的多台机器中选择一台。
4.Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。
5.Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)