Java面試題(Spring Boot/Spring Cloud篇)


Spring Boot/Spring Cloud

104.什么是 spring boot?

SpringBoot是一個框架,一種全新的編程規范,他的產生簡化了框架的使用,所謂簡化是指簡化了Spring眾多框架中所需的大量且繁瑣的配置文件,所以 SpringBoot是一個服務於框架的框架,服務范圍是簡化配置文件。

105.為什么要用 spring boot?

Spring Boot使編碼變簡單

Spring Boot使配置變簡單

Spring Boot使部署變簡單

Spring Boot使監控變簡單

Spring的不足

106.spring boot 核心配置文件是什么?

Spring Boot提供了兩種常用的配置文件:properties文件yml文件

107.spring boot 配置文件有哪幾種類型?它們有什么區別?

Spring Boot提供了兩種常用的配置文件,分別是properties文件和yml文件。相對於properties文件而言,yml文件更年輕,也有很多的坑。可謂成也蕭何敗蕭何,yml通過空格來確定層級關系,使配置文件結構跟清晰,但也會因為微不足道的空格而破壞了層級關系。

108.spring boot 有哪些方式可以實現熱部署?

1.Spring Loaded

2.spring-boot-devtools

3.JRebel插件 

109.jpa 和 hibernate 有什么區別?

JPA Java Persistence API,是Java EE 5的標准ORM接口,也是ejb3規范的一部分。

Hibernate,當今很流行的ORM框架,是JPA的一個實現,但是其功能是JPA的超集。

JPA和Hibernate之間的關系,可以簡單的理解為JPA是標准接口,Hibernate是實現。那么Hibernate是如何實現與JPA的這種關系的呢。Hibernate主要是通過三個組件來實現的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。

hibernate-annotation是Hibernate支持annotation方式配置的基礎,它包括了標准的JPA annotation以及Hibernate自身特殊功能的annotation。

hibernate-core是Hibernate的核心實現,提供了Hibernate所有的核心功能。

hibernate-entitymanager實現了標准的JPA,可以把它看成hibernate-core和JPA之間的適配器,它並不直接提供ORM的功能,而是對hibernate-core進行封裝,使得Hibernate符合JPA的規范。

110.什么是 spring cloud?

Spring Cloud 是一個服務治理平台,提供了一些服務框架。包含了:服務注冊與發現、配置中心、消息中心 、負載均衡、數據監控等等。

Spring Cloud 是一個微服務框架,相比 Dubbo 等 RPC 框架, Spring Cloud 提供了全套的分布式系統解決方案。

Spring Cloud 對微服務基礎框架 Netflix 的多個開源組件進行了封裝,同時又實現了和雲端平台以及 Spring Boot 框架的集成。

Spring Cloud 是一個基於 Spring Boot 實現的雲應用開發工具,它為開發中的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態管理等操作提供了一種簡單的開發方式。

Spring Cloud 為開發者提供了快速構建分布式系統的工具,開發者可以快速的啟動服務或構建應用、同時能夠快速和雲平台資源進行對接。微服務是可以獨立部署、水平擴展、獨立訪問(或者有獨立的數據庫)的服務單元,Spring Cloud 就是這些微服務的大管家,采用了微服務這種架構之后,項目的數量會非常多,Spring Cloud 做為大管家需要管理好這些微服務,自然需要很多小弟來幫忙。

111.spring cloud 斷路器的作用是什么?

Spring Cloud中使用了Hystrix 來實現斷路器的功能,斷路器可以防止一個應用程序多次試圖執行一個操作,即很可能失敗,允許它繼續而不等待故障恢復或者浪費 CPU 周期,而它確定該故障是持久的。斷路器模式也使應用程序能夠檢測故障是否已經解決,如果問題似乎已經得到糾正,應用程序可以嘗試調用操作。

     斷路器增加了穩定性和靈活性,以一個系統,提供穩定性,而系統從故障中恢復,並盡量減少此故障的對性能的影響。它可以幫助快速地拒絕對一個操作,即很可能失敗,而不是等待操作超時(或者不返回)的請求,以保持系統的響應時間。如果斷路器提高每次改變狀態的時間的事件,該信息可以被用來監測由斷路器保護系統的部件的健康狀況,或以提醒管理員當斷路器跳閘,以在打開狀態。

112.spring cloud 的核心組件有哪些?

①. 服務發現——Netflix Eureka

一個RESTful服務,用來定位運行在AWS地區(Region)中的中間層服務。由兩個組件組成:Eureka服務器和Eureka客戶端。Eureka服務器用作服務注冊服務器。Eureka客戶端是一個java客戶端,用來簡化與服務器的交互、作為輪詢負載均衡器,並提供服務的故障切換支持。Netflix在其生產環境中使用的是另外的客戶端,它提供基於流量、資源利用率以及出錯狀態的加權負載均衡。

②. 客服端負載均衡——Netflix Ribbon

Ribbon,主要提供客戶側的軟件負載均衡算法。Ribbon客戶端組件提供一系列完善的配置選項,比如連接超時、重試、重試算法等。Ribbon內置可插拔、可定制的負載均衡組件。

③. 斷路器——Netflix Hystrix

斷路器可以防止一個應用程序多次試圖執行一個操作,即很可能失敗,允許它繼續而不等待故障恢復或者浪費 CPU 周期,而它確定該故障是持久的。斷路器模式也使應用程序能夠檢測故障是否已經解決。如果問題似乎已經得到糾正,應用程序可以嘗試調用操作。

④. 服務網關——Netflix Zuul

類似nginx,反向代理的功能,不過netflix自己增加了一些配合其他組件的特性。

⑤. 分布式配置——Spring Cloud Config

這個還是靜態的,得配合Spring Cloud Bus實現動態的配置更新。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM