zoukankan      html  css  js  c++  java
  • 几道关于springboot、springCloud的面试题。

    什么是springboot

    用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(propertites或yml文件)

                                创建独立的spring引用程序main方法运行

                                嵌入的tomcat无需部署war文件

                                简化maven配置

                                自动配置spring      添加对应功能starter自动化配置

    springboot常用的starter有哪些

             spring-boot-starter-web嵌入tomcat和webkaifa需要servlet与jsp支持

             spring-boot-starter-data-jpa数据库支持

             spring-boot-starter-data-redis数据库支持

             spring-boot-starter-data-solr solr支持

             mybatis-spring-boot-starter第三方的mybatis集成starter

    springboot自动配置的原理

             在spring程序main方法中添加@SpringBootApplication或者@EnableAutoConfiguration

             会自动去mavenzhong读取每个starter中的spring.factories文件,该文件配置了所有需要被创建spring容器中的bean

    springboot读取配置文件的方式

             springboot默认读取配置文件为application.properties或者application.yml

    springboot集成mybatis的过程

             添加mybatis的starter maven依赖

       <dependency><groupld>...</groupld><artifactld>mybatis-spring-boot-starter</artifactld><version>1.2.0</version></dependency>

              在mybatis的接口中添加@Mapper注解

              在application.yml配置数据源信息

    springboot如何添加【修改代码】自动重启功能

             添加开发者工具·spring-boot-devtools

    什么是微服务

             以前的模式是所有的代码在同一个工程中 部署在同一个服务器中 同一个项目的不同模块不同功能互相抢占资源

             微服务 将工程根据不同的业务规则拆分成微服务 微服务部署在不同的机器上  服务之间进行相互调用

             java微服务的框架有dubbo(只能用来做微服务),springCloud(提供了服务的发现,断路器等)

    springcloud如何实现服务的注册和发现

             服务在发布时 指定对应的服务名(服务名包括了IP地址和端口) 将服务注册到注册中心(eureka或者zookeeper)

             这一过程时springcloud自动实现  只需要在main方法添加@EnableDisscoveryClient 同一个服务修改端口就可以启动多个实例

             调用方法:传递服务名称通过注册中心获取所有的可用实例,通过负载均衡策略调用(ribbon和feign)对应的服务

    Ribbon和Feign的区别

             Ribbon和Feign都是用于调用其他服务,不过方式不同。

             1、启动类使用的注解不同,Ribbon使用的时@RibbonClient,Feign用的时@EnableFeignClients

             2、服务的指定位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口使用@FeignClient声明。

             3、调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。

                       Feign则是在Ribbon的基础进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可。

                       不需要自己构建http请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。

    SpringCloud断路器的作用

             当一个服务调用另一个服务由于网络原因或者自身原因出现问题时 ,调用者就会等待被调者的响应,

             当更多的服务请求到这些资源时,导致更多的请求等待,这样就会发生连锁效应,断路器就是解决这一问题的。

             断路器有完全打开状态:

                       一定时间内,达到一定的次数无法调用,并且多次检测没有恢复的迹象,断路器完全打开,那么下次的请求不会请求到该服务。

             半开:

                       短时间内有回复迹象,断路器会将部分请求发送给服务,当能正常调用时,断路器关闭。

             关闭:

                       当服务一直处于正常状态,能正常调用,断路器关闭。

    如何使用springboot部署到不同的服务器

             1、在一个项目中生成一个war文件。

             2、将它部署到想要部署的服务器中(websphere或者weblogic或者Tomcat and so on)

    JPA和Hibernate有哪些区别

             简而言之:

                       1、JPA是一个规范或者接口

                       2、Hibernate是JPA的一个实现

             当我们使用JPA的时候,我们使用javax.persistence包中的注释和接口时,不需要使用hibernate的导入包。

    什么是spring cloud

             Spring Cloud为开发人员提供了快速构建分布式系统的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理

             ,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致了锅炉板模式,并且使用

             Spring Cloud开发人员可以快速地站起来来实现这些模式的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员

             自己的笔记本电脑,裸机数据中心和受管平台,Cloud Foundry。

    Zookeeper是什么框架

             分布式的、开源的分布式应用程序协调服务,原本是Hadoop、Hbase的一个重要组件,它为分布式应用提供一致性服务的软件,

             包括:配置维护、域名服务、分布式同步、组服务等。

    应用场景:

             Zookeeper的功能很强大,应用场景很多,Zookeeper主要是做注册中心用。基于Dubbo框架开发的提供者、消费者都向Zookeeper

             注册自己的URL,消费者还能拿到并订阅提供者的注册URL,一边在后续程序的执行中去调用提供者。而提供者发生了变动,

             也会通过Zookeeper向订阅的消费者发送通知。

    Zookeeper有哪几种节点类型:

             持久:创建之后一直存在,除非有删除操作,创建节点的客户端会话失效也不影响此节点。

             持久顺序:跟持久一样,就是父节点在创建下一级节点的时候,记录每个子节点创建的先后顺序。会给每个子节点加上一个数字后缀。

             临时:创建客户端会话失效(注意是会话失效,而不是断了),节点也就没了,不能创建子节点。

             临时顺序:。。。。

  • 相关阅读:
    django页面分类和继承
    django前端从数据库获取请求参数
    pycharm配置django工程
    django 应用各个py文件代码
    CF. 1428G2. Lucky Numbers(背包DP 二进制优化 贪心)
    HDU. 6566. The Hanged Man(树形背包DP DFS序 重链剖分)
    小米邀请赛 决赛. B. Rikka with Maximum Segment Sum(分治 决策单调性)
    区间树 学习笔记
    CF GYM. 102861M. Machine Gun(主席树)
    2016-2017 ACM-ICPC East Central North America Regional Contest (ECNA 2016) (B, D, G, H)
  • 原文地址:https://www.cnblogs.com/yswyzh/p/9467008.html
Copyright © 2011-2022 走看看