第一輪面試


第一輪面試題

1.描述下數據庫中的事務--ACID各個的特點

2.什么是springboot?你們公司是用的哪個版本?

3.什么是redis?

4.如何理解springcloud微服務項目中,eureka,provider,consumer它們之間的關系?

5.mysql默認的存儲引擎是什么?

6.什么是跨域?

7.什么是token?

8.什么是RESTful?

9.SpringCloud解決了哪些問題?

10.微服務中什么是熔斷?什么是服務降級?

11.微服務的優缺點是什么?

12.微服務之間如何獨立通訊的?

13.SpringCloud 和 Dubbo 有哪些區別?

14.SpringBoot 和 SpringCloud 之間關系?

15.eureka和zookeeper的區別?

16.mycat是什么?你們公司分庫分表的分片規則是什么?

17.什么是集合?

18.什么是dubbo?

19.什么是spring?


 

一、描述下數據庫中的事務--ACID各個的特點。

原子性:事務中的操作要么全部成功要么全部失敗。
一致性:事務前后數據的完整性必須保持一致。
隔離性:多個並發的事務之間是相互隔離的,互不干擾的。
持久性:事務提交后,數據是永久改變的。

 

二、什么是springboot?你們公司是用的哪個版本?

SpringBoot是Spring推出用於解決傳統框架配置文件冗余,裝配組件繁雜的基於Maven的解決方案,旨在快速搭建單個微服務。
版本號:2.1.6

 

三、什么是redis?

Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-value數據庫。

 

四、如何理解springcloud微服務項目中,eureka,provider,consumer它們之間的關系?

eureka:提供服務注冊於發現
provider:服務提供方法將自身注冊到eureka,讓消費方找到
consumer:服務消費方從eureka獲取注冊服務列表,能夠消費服務

 

五、mysql默認的存儲引擎是什么?

Mysql在V5.1之前默認存儲引擎是MyISAM;在此之后默認存儲引擎是InnoDB。

MyISAM不支持事務,InnoDB支持事務。
MySIAM不支持外鍵,InnoDB支持外鍵,
MySIAM支持全文索引,InnoDB不支持全文索引。

 

六、什么是跨域?

要了解跨域,先要說說同源策略。所謂同源是指,域名,協議,端口相同,有一個不一樣則是跨域。

 

七、什么是token?

Token是服務端生成的一串字符串,以作客戶端進行請求的一個令牌。
當第一次登錄后,服務器生成一個Token便將此Token返回給客戶端,
以后客戶端只需帶上這個Token前來請求數據即可,無需再次帶上用戶名和密碼。

 

八、什么是RESTful?

首先rest是一種API的模式,常以JSON格式編寫。符合rest約束風格和原則的應用程序或設計就是RESTful。

 

九、SpringCloud解決了哪些問題?

與分布式系統相關的復雜性 
處理服務發現的能力
解決冗余問題 
負載平衡 
減少性能問題 

 

十、微服務中什么是熔斷?什么是服務降級?

服務熔斷的作用是當某服務出現不可用或響應超時的情況時,為了防止整個系統出現雪崩,暫時停止對該服務的調用。       
服務降級是為了預防某些功能(業務場景)出現負荷過載或者響應慢的情況,在其內部暫時舍棄對一些非核心的接口和數據的請求,而直接返回一個提前准備好的fallback(退路)錯誤處理信息。

 

十一、微服務的優缺點是什么?

優點:

易於開發和維護:因為一個服務只關注一個特定的業務,業務就變得比較清晰。同時維護起來也是比較方便。
單個服務啟動比較快:單個服務代碼量不會很多,啟動起來就會很快。
便於伸縮:如果系統中有三個服務ABC,服務B的訪問量比較大,我們可以將服務B集群部署。


缺點:
運維要求比較高:之前就一個war包,現在一個系統中會有很多的服務,每個服務都對應一個war包,維護起來就會變得很麻煩。
技術復雜性提高:微服務就會帶來一系列的問題,事務問題,Session一致性問題,鎖問題等。

 
        

 

十二、微服務之間如何獨立通訊的?

同步通信:dobbo通過 RPC 遠程過程調用、springcloud通過 REST接口json調用等。
異步:消息隊列,如:RabbitMq、ActiveMq、Kafka 等。

 

十三、SpringCloud 和 Dubbo 有哪些區別?

首先,他們都是分布式管理框架。
    dubbo 是二進制傳輸,占用帶寬會少一點。SpringCloud是http 傳輸,帶寬會多一點,同時使用http協議一般會使用JSON報文,消耗會更大。
    SpringCloud 接口協議約定比較松散,需要強有力的行政措施來限制接口無序升級。
最大的區別:
    Spring Cloud拋棄了Dubbo 的RPC通信,采用的是基於HTTP的REST方式。

 

十四、SpringBoot 和 SpringCloud 之間關系?

SpringBoot:專注於快速方便的開發單個個體微服務(關注微觀);
SpringCloud:關注全局的微服務協調治理框架,將SpringBoot開發的一個個單體微服務組合並管理起來(關注宏觀);
SpringBoot可以離開SpringCloud獨立使用,但是SpringCloud不可以離開SpringBoot,屬於依賴關系。

 

十五、eureka和zookeeper的區別?

eureka和zookeeper都可以提供服務注冊與發現的功能,zookeeper 是CP原則,強一致性和分區容錯性。eureka 是AP 原則 可用性和分區容錯性。
zookeeper當主節點故障時,zk會在剩余節點重新選擇主節點,耗時過長,雖然最終能夠恢復,但是選取主節點期間會導致服務不可用,這是不能容忍的。
eureka各個節點是平等的,一個節點掛掉,其他節點仍會正常保證服務。

 

十六、mycat是什么?你們公司分庫分表的分片規則是什么?

 
         

Mycat是基於MySQL的數據庫中間件,用來協調切分后的數據庫,使其可以進行統一管理。

分片規則:取模分片 PartitionByMode

 

十七、什么是集合?

集合有兩個父接口,一個collection,一個Map;
而collection有兩個子接口,一個List,一個Set;
List有兩個常見的實現類 ArrayList,LinkedList;
Set有兩個常見的實現類 HashSet,TreeSet;
Map有兩個常見的實現類 HashMap,HashTable。

 

十八、什么是dubbo?

Dubbo和Springcloud都是分布式服務中常用的框架。dubbo與cloud不同,dubbo基於RPC協議。它提供了三大核心功能: 面向接口的遠程方法調用,

智能容錯和負載均衡, 以及服務自動注冊和發現。

 

十九、什么是spring?

Spring是一個開源的輕量級的Java開發框架。是一種簡化應用程序的開發。
在spring出來之前,service層調用dao層都是用new的方式,在spring出來之后,service層和到dao層都會放在spring容器去管理,
這是spring的第一種特性,我們稱之為IOC,控制反轉。 spring還有一種特性,我們稱之為AOP,大白話,所謂“面向切面”,說白了就是專門的人干專門的事。
在項目很多公有的或是要被重復被調用的模塊可以被抽取出來,利用的就AOP的特性,例如日志模塊。

 

 

 

 

 

 


免責聲明!

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



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