面試的時候,面試官直接問,說說項目中使用分布式的場景?感覺現在的面試,高并發和分布式是面試的標配啊,說實話,雖然項目的底層用了8臺機器做集群,但是使用分布式場景的業務場景確實不多,回答的不是很好。問題:1.個人感覺單講分布式的話,包含有分布式存儲、分布式事務,分布式鎖,分布式鎖有memcache、redis、DB等實現方式。以后遇到這種問題,如何回答才能達到面試官滿意的程度??(個人感覺面試官是想知道:對于分布式這種問題的架構設計方面的理解以及在場景中如何使用)============================================================總結答案如下:一、解決java集群的session共享的解決方案:1.客戶端cookie加密。(一般用于內網中企業級的系統中,要求用戶瀏覽器端的cookie不能禁用,禁用的話,該方案會失效)。2.集群中,各個應用服務器提供了session復制的功能,tomcat和jboss都實現了這樣的功能。特點:性能隨著服務器增加急劇下降,容易引起廣播風暴;session數據需要序列化,影響性能。3.session的持久化,使用數據庫來保存session。就算服務器宕機也沒事兒,數據庫中的session照樣存在。特點:每次請求session都要讀寫數據庫,會帶來性能開銷。使用內存數據庫,會提高性能,但是宕機會丟失數據(像支付寶的宕機,有同城災備、異地災備)。4.使用共享存儲來保存session。和數據庫類似,就算宕機了也沒有事兒。其實就是專門搞一臺服務器,全部對session落地。特點:頻繁的進行序列化和反序列化會影響性能。5.使用memcached來保存session。本質上是內存數據庫的解決方案。特點:存入memcached的數據需要序列化,效率極低。二、分布式事務的解決方案:1.TCC解決方案:try confirm cancel。
添加回答
舉報
0/150
提交
取消