springboot+springcloud相關面試題

1.什麼是Springboot?

用來簡化spring應用的初始搭建以及開發過程 使用特定的方式來進行配置(properties或yml文件)web

  • 建立獨立的spring引用程序 main方法運行
  • 嵌入的Tomcat 無需部署war文件
  • 簡化maven配置
  • 自動配置spring添加對應功能starter自動化配置

2.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 第三方的mybatis集成starter

3.Springboot自動配置的原理

在spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration
會自動去maven中讀取每一個starter中的spring.factories文件 該文件裏配置了全部須要被建立spring容器中的beanredis

4.springboot讀取配置文件的方式

springboot默認讀取配置文件爲application.properties或者是application.ymlspring

5.springboot集成mybatis的過程

添加mybatis的starter maven依賴數據庫

<dependency>
                        <groupId>org.mybatis.spring.boot</groupId>
                        <artifactId>mybatis-spring-boot-starter</artifactId>
                        <version>1.2.0</version>
                </dependency>
在mybatis的接口中 添加@Mapper註解
    在application.yml配置數據源信息

6.springboot如何添加【修改代碼】自動重啓功能

添加開發者工具集=====spring-boot-devtoolstomcat

Spring Cloud

1.springcloud如何實現服務的註冊和發現

服務在發佈時 指定對應的服務名(服務名包括了IP地址和端口) 將服務註冊到註冊中心(eureka或者zookeeper)
這一過程是springcloud自動實現 只須要在main方法添加@EnableDisscoveryClient 同一個服務修改端口就能夠啓動多個實例
調用方法:傳遞服務名稱經過註冊中心獲取全部的可用實例 經過負載均衡策略調用(ribbon和feign)對應的服務springboot

2.ribbon和feign區別

  1. 啓動類使用的註解不一樣,Ribbon用的是@RibbonClient,Feign用的是@EnableFeignClients。
  2. 服務的指定位置不一樣,Ribbon是在@RibbonClient註解上聲明,Feign則是在定義抽象方法的接口中使用@FeignClient聲明。
  3. 調用方式不一樣:Ribbon須要本身構建http請求,模擬http請求而後使用RestTemplate發送給其餘服務,步驟至關繁瑣。Feign則是在Ribbon的基礎上進行了一次改進,採用接口的方式,將須要調用的其餘服務的方法定義成抽象方法便可, 不須要本身構建http請求。不過要注意的是抽象方法的註解、方法簽名要和提供服務的方法徹底一致。

3. springcloud斷路器的做用

當一個服務調用另外一個服務因爲網絡緣由或者自身緣由出現問題時 調用者就會等待被調用者的響應 當更多的服務請求到這些資源時致使更多的請求等待,這樣就會發生連鎖效應(雪崩效應),斷路器就是解決這一問題。
斷路器有徹底打開狀態: 必定時間內 達到必定的次數沒法調用 而且屢次檢測沒有恢復的跡象 斷路器徹底打開,那麼下次請求就不會請求到該服務
半開:短期內 有恢復跡象 斷路器會將部分請求發給該服務 當能正常調用時 斷路器關閉
關閉:當服務一直處於正常狀態 能正常調用 斷路器關閉。網絡

相關文章
相關標籤/搜索