第一輪面試

第一輪面試題css

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

2.什麼是springboot?大家公司是用的哪一個版本?mysql

3.什麼是redis?面試

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

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

6.什麼是跨域?sql

7.什麼是token?數據庫

8.什麼是RESTful?json

9.SpringCloud解決了哪些問題?跨域

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

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

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

13.SpringCloud 和 Dubbo 有哪些區別?

14.SpringBoot 和 SpringCloud 之間關係?

15.eureka和zookeeper的區別?

16.mycat是什麼?大家公司分庫分表的分片規則是什麼?

17.什麼是集合?

18.什麼是dubbo?

19.什麼是spring?


 

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

原子性:要麼所有成功要麼所有失敗。
一致性:事務開始前和結束後,都是一致性狀態(錢的總額不變)。
隔離性:多個併發的事務之間是相互隔離的,互不干擾的。
持久性:數據提交後,是永久改變的。

 

2、什麼是springboot?大家公司是用的哪一個版本?

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

 

3、什麼是redis?

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

 

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

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

 

5、mysql默認的存儲引擎是什麼?

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

 

6、什麼是跨域?

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

 

7、什麼是token?

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

 

8、什麼是RESTful?

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

 

9、SpringCloud解決了哪些問題?

與分佈式系統相關的複雜性 – 包括網絡問題,延遲開銷,安全問題。
處理服務發現的能力 – 服務發現容許集羣中的進程和服務找到彼此並進行通訊。
解決冗餘問題 – 冗餘問題常常發生在分佈式系統中。
負載平衡 – 改進跨多個計算資源(例如計算機集羣,網絡連接,中央處理單元)的工做負載分佈。
減小性能問題 – 減小因各類操做開銷致使的性能問題。

 

10、微服務中什麼是熔斷?什麼是服務降級?

服務熔斷的做用相似於咱們家用的保險絲,當某服務出現不可用或響應超時的狀況時,爲了防止整個系統出現雪崩,暫時中止對該服務的調用。       
服務降級是從整個系統的負荷狀況出發和考慮的,對某些負荷會比較高的狀況,爲了預防某些功能(業務場景)出現負荷過載或者響應慢的狀況,
在其內部暫時捨棄對一些非核心的接口和數據的請求,而直接返回一個提早準備好的fallback(退路)錯誤處理信息。
這樣,雖然提供的是一個有損的服務,但卻保證了整個系統的穩定性和可用性。

 

11、微服務的優缺點是什麼?

優勢:
   鬆耦合,聚焦單一業務功能,無關開發語言,團隊規模下降。在開發中,不須要了解多有業務,
    只專一於當前功能,便利集中,功能小而精。微服務一個功能受損,對其餘功能影響並非太大,能夠快速定位問題。
    微服務只專一於當前業務邏輯代碼,不會和 html、css 或其餘界面進行混合。能夠靈活搭配技術,獨立性比較舒服。
缺點:
  隨着服務數量增長,管理複雜,部署複雜,服務器須要增多,服務通訊和調用壓力增大,運維工程師壓力增大,
  人力資源增多,系統依賴加強,數據一致性,性能監控。



優勢

易於開發和維護:由於一個服務只關注一個特定的業務,業務就變得比較清晰。同時維護起來也是比較方便。
單個服務啓動比較快:單個服務代碼量不會不少,啓動起來就會很快。
便於伸縮:若是系統中有三個服務ABC,服務B的訪問量比較大,咱們能夠將服務B集羣部署。
微服務的缺點?
運維要求比較高:以前就一個war包,如今一個系統中會有不少的服務,每一個服務都對應一個war包,維護起來就會變得很麻煩。
技術複雜性提升:微服務就會帶來一系列的問題,事務問題,Session一致性問題,鎖問題等。

 

 

12、微服務之間如何獨立通信的?

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

 

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

首先,他們都是分佈式管理框架。
    dubbo 是二進制傳輸,佔用帶寬會少一點。SpringCloud是http 傳輸,帶寬會多一點,同時使用http協議通常會使用JSON報文,消耗會更大。
    dubbo 開發難度較大,所依賴的 jar 包有不少問題大型工程沒法解決。SpringCloud 對第三方的繼承能夠一鍵式生成,自然集成。
    SpringCloud 接口協議約定比較鬆散,須要強有力的行政措施來限制接口無序升級。
最大的區別:
    Spring Cloud拋棄了Dubbo 的RPC通訊,採用的是基於HTTP的REST方式。
    嚴格來講,這兩種方式各有優劣。雖然在必定程度上來講,後者犧牲了服務調用的性能,
    但也避免了上面提到的原生RPC帶來的問題。並且REST相比RPC更爲靈活,服務提供方和調用方的依賴只依靠一紙契約,
    不存在代碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更爲合適。

 

十4、SpringBoot 和 SpringCloud 之間關係?

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

 

十5、eureka和zookeeper的區別?

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

 

十6、mycat是什麼?大家公司分庫分表的分片規則是什麼?

 
 

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

分片規則:取模分片 PartitionByMode

 

十7、什麼是集合?

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

 

十8、什麼是dubbo?

Dubbo是一款高性能, 輕量級的開源Java RPC分佈式服務框架, 它提供了三大核心功能: 面向接口的遠程方法調用,
智能容錯和負載均衡, 以及服務自動註冊和發現。它最大的特色是按照分層的方式來架構,使用這種方式可使各個層之間解藕(或者最大限度地鬆耦合)。
從服務模型的角度來看, Dubbo採用的是一種很是簡單的模型, 要麼提供方提供服務, 要麼是消費方消費服務, 因此基於這一點能夠抽象出服務提供方和服務消費方兩個角色。

 

十9、什麼是spring?

Spring是一個開源的輕量級的Java開發框架。是一種簡化應用程序的開發。
在spring出來以前,service層調用dao層都是用new的方式,在spring出來以後,service層和到dao層都會放在spring容器去管理,這是spring的第一種特性,咱們稱之爲IOC,控制反轉。
spring還有一種特性,咱們稱之爲AOP,大白話,所謂「面向切面」,說白了就是專門的人幹專門的事。在項目不少公有的或是要被重複被調用的模塊能夠被抽取出來,利用的就AOP的特性,例如日誌模塊。
相關文章
相關標籤/搜索