原创 Dubbo服務導出如何實現的?我們從中能夠學習到什麼?

Dubbo通過註解或者xml形式標識Dubbo服務,在Spring 容器發佈刷新事件,會立即執行服務導出邏輯,示例如下: import com.alibaba.dubbo.config.annotation.Service; impor

原创 深入理解Spring Cloud Zuul網關和使用場景

網關概述 簡單的理解,網關主要功能就是過濾和路由轉發,統一了對後端服務的訪問。網關基於ZuulServlet,定義了一組ZuulFilter過濾器實現各類攔截邏輯,ZuulFilter定義了pre,route,post,err四種類型。Z

原创 玩轉Spring Cloud Security OAuth2資源授權動態權限擴展

在Spring Cloud Security 中,認證和授權都是通過FilterChainProxy(Servlet Filter過濾器)攔截然後進行操作的,詳細的操作流程可以參考深入理解Spring Cloud Security OAu

原创 什麼是紅黑樹(red black tree)?

紅黑樹特性 紅黑樹(red black tree),是一個平衡二叉查詢樹,對紅黑樹的操作在最壞的情形下,花費O(logN)的時間。紅黑樹與AVL平衡二叉查詢樹比,樹的平均深度差不多,查詢效率相當。但是,其插入或刪除操作的開銷比AVL平衡二

原创 責任鏈如何設計?Tomcat和Netty分別是如何實現過濾器鏈和事件鏈?

在業務開發中,對於同一類邏輯處理,一般都是都是歸類爲一組集合,類似於一條業務鏈來處理,流程如下: 舉個例子,在下單過程中,會對生成訂單進行很多條件判斷。通常,會定義一個校驗接口Validator定義生成訂單的條件判斷業務的抽象;在下單過

原创 TreeMap-Java8源碼教會你正確的使用方式

TreeMap在java中,是基於紅黑樹的原理實現的(紅黑樹的原理請參考紅黑樹(red black tree)-分分鐘鐘被安排地明明白白),其原理是一棵有條件的平衡二叉查詢樹。節點定義包含了左右兒子節點,父節點,顏色標識。源碼如下:

原创 深入理解Spring Cloud Security OAuth2資源授權

OAuth2授權概述 在Spring Cloud Security 中,認證和授權都是通過FilterChainProxy(Servlet Filter過濾器)攔截然後進行操作的。在Spring Security中FilterSecuri

原创 出行行業計價模塊的設計模式實踐

業務場景介紹 在出行行業中,價格的配置隨隨着業務的增加而增加,而刺激出行的促銷活動更是頻繁。在價格的計算中,通常的流程如下: 根據一組價格配置,計算訂單基礎的價格。 根據用戶擁有的優惠對象,例如優惠券,積分,會員級別等,計算出優惠以後的價

原创 組合設計模式-SpringCloudSecurity教你如何玩

組合模式,將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。簡單理解就是,整體和部分的接口定義是一致的,在使用的時候,只有調用整體的接口就行,部分接口有新增的自定義,組合到整體就可以

原创 什麼是B+樹?

B+樹特性 B+樹是爲磁盤或其他直接存取輔助設備而設計的一種M叉平衡查詢樹,其特性如下: 每個節點M個關鍵字和M棵子樹,每個關鍵字對應一個子樹。 除根節點外,其餘所有節點的關鍵字數在M/2(小數位進1)和M之間;根節點的關鍵字數在[1,M

原创 深入理解synchronized鎖和使用場景

synchronized原理 在java中,提供了synchronized實現共享對象的併發訪問。當一個線程試圖訪問同步代碼塊時,它首先必須得到鎖,退出或拋出異常時必須釋放鎖。通常有三種使用方式,如下: 對於普通同步方法,鎖是當前實例對象

原创 什麼是B樹?

B樹特性 B樹,是一個M叉平衡查詢樹。如果M爲2即爲二叉查詢平衡樹,一般M都是大於2的。其特性如下: 數據項存儲在樹的葉子節點。 所有樹的葉子節點都在相同的深度上,並由L/2(小數位進1)和L之間個數據項。 非葉節點存儲直到M-1個關鍵字

原创 爲什麼會數據不一致?常見分佈式實現方案有哪些?

數據庫事務的ACID特性 數據庫事務特性包括原子性(Atomicity )、一致性( Consistency )、隔離性或獨立性( Isolation)和持久性(Durabilily)。以下單爲例,在單體的電商系統中,調用下單服務,整個服

原创 爲什麼JVM老年代要使用CMS垃圾回收器?

概述 CMS(concurrent mark sweep)併發標記清理收集器以獲取最短回收停頓時間爲目標的收集器,特別適用於互聯網網站或者B/S系統的服務端上,這類重視服務響應速度的,給用戶良好的體驗的情況。使用多線程併發地標記和清理,基

原创 什麼是CAP?適用的場景有哪些?

概述 在分佈式系統中,圍繞着CAP理論,主要關注點就是複製,一致性,容錯性。 複製 爲了保證系統的高可用和高可靠性,通過複製的方式,讓數據在系統中存儲多個副本。以服務實例多副本爲例,當一個服務發生異常時,客戶端就直接調用其他正常的副本。如