面試複習(深圳第三天)

※※※Spring IOC的實現方式※※※
1、XML配置(不推薦,xml文件太多,不易於管理)
2、自動裝配(推薦,使用spring註解和xml配合,這種方式也是比較普遍的)
3、零配置(不推薦,因爲項目上線後難以修改)

※※※既然提到IOC,就深入學習Spring BeanFactory原理※※※
1、BeanFactory是Spring容器的基礎接口
2、BF是通過反射的方式來創建對象:Class.forName(……).newInstance();
3、接第2點,如果有對象注入的話,則
Class.forName(……).getPropertyDescriptors();獲取屬性。
method.invoke(obj, value);設置值有set方法的情況下。
如果沒有set方法,則一樣可以使用反射的 getDeclaredField 連私有的屬性都可以注入!
4、底層結構就是hashmap存放bean

※※※既然提到零配置,就深入學習一下SpringBoot如何實現零配置※※※
原理:引入的包,均有默認配置,@config使用該註解如果用戶自己有配置則選擇用戶的如果沒有則選擇自己的配置。

※※※正常代理與反向代理※※※
正向代理,作用:訪問無法訪問的網站,可以隱藏用戶信息。從用戶角度,用戶需要配置一些東西才能訪問特定的代理服務器。從服務器角度,只是多了一名看門人。
反向代理,作用:代理服務器,轉發請求,實現負載均衡。從用戶角度,用戶感覺不到該代理服務器的存在。從服務器角度,多了一名擁有大門鑰匙的管理者。

※※※負載均衡※※※
1、DNS負載均衡:
優點:將網址解析分配多個IP,操作簡單,易於配置,成本低
缺點:時效性低,採用簡單的輪詢算法負載均衡效果差。
一般來說,這是負載均衡的一級策略。
2、反向代理服務器實現負載均衡:eg,Nginx
核心:轉發HTTP請求
優點:多種分配算法,如默認的輪詢算法可以設置權重提高被訪問的次數,ip_hash算法,fair根據後臺響應時間,url_hash根據url的hash值去訪問對應的服務器。

※※※微服務架構※※※
CAP理論,一致性,可用性,分區容錯性。
在分佈式的架構中,P必須保證,所以只能在C和A中取捨。
zookeeper保證CP,當一個節點掛掉的時候,服務器會進行30S的選舉leader操作,而eureka保證AP,每個節點都是平等的,當某個節點掛掉的時候,依然可以使用其他的節點,但是數據可能不是最新的,沒有保證強一致性。

※※※微服務架構中的事務管理※※※
基於可靠消息的最終一致性方案,需要使用消息管理機制比如activeMQ來保證消息的最終一致性。
TCC事務補償機制
try confirm/cancel,try一系列檢查,成功則執行confirm,失敗則執行canel
XA協議,二階段提交,1OK,2OK,則開始執行,如果遇到失敗則回滾。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章