原创 【分佈式鎖】redis實現分佈式鎖

redis 實現分佈式鎖,網上已有太多文章,想給你們看看不一樣的(一個實現了 Lock 接口,能夠提供阻塞的分佈式鎖)。 我的非阻塞式獲取鎖和釋放鎖的代碼均參考自參考博文中的 Redis分佈式鎖的正確實現方式。 首先,分佈式鎖

原创 手撕AQS之Condition

Condition 的使用接觸最多是在 ReentrantLock,講 AQS 到這裏應該就完結了,前兩篇文章理了下 AQS 的共享鎖模式和獨立鎖模式,這篇在理下其中 Condition 的原理。 我在第一篇 手撕AQS之共享

原创 【第二戰】又談網關Zuul

序 Zuul 很有意思,作爲網關服務,它將充當內部服務的代理,負責與外部通信。但僅僅是與外部服務通信需要它嘛?不對,從設計上來講,它能將具有相同訪問特徵的系列服務歸類處理。 不僅僅是外部訪問,服務簇之間的通信也可以依賴代理 zu

原创 【第一戰】微服務何不康康我SpringCloud

序 使用 Spring Cloud (以下簡稱 sc) 搭建微服務,會遇見怎樣的問題呢?網站的架構又該如何?這期間又會有怎樣的趣事?我且通過實際用例的演變供各位看官參考。 系統架構 sc 中有一個有趣的註解:SpringClou

原创 windows 系統下如何殺死 Java 程序

如何通過命令行的方式殺死 Java 程序?我們將面臨這樣的問題: 如何找到 Java 程序? 如何殺死 Java 程序? 如果它像看起來這麼簡單的話,我想,這篇博文就沒機會與大家見面了!找到 Java 程序比較簡單,windo

原创 手撕AQS之獨佔鎖模式

寫在前面 AQS 也是在來來回回看了源碼好多遍,纔有所理解。原本打算就這一篇寫完,點到即止,但不知覺的又深入了,無法抗拒的代碼魅力啊!所以分爲兩篇,一篇共享式,一篇獨佔式,美滋滋呢。共享式已寫好,共享式中有關於我個人對 AQS 的

原创 dubbo系列之服務導出

寫在前面 以下參考自 Dubbo 官方文檔;文章基於 dubbo-spring-boot-starter 2.7.0,配置是基本配置; Dubbo 服務導出過程始於 Spring 容器發佈刷新事件,Dubbo 在接收到事件後,

原创 手撕LinkedList

LinkedList 底層數據結構是雙向鏈表,可以存儲任何元素(包括 null)。它也實現了 Deque 接口,可以將它當做雙向隊列使用。 初始化 它並沒有任何初始化。雙向鏈表依靠 first 和 last 兩個節點維護:

原创 手撕TreeSet

TreeSet 能夠按照指定的比較方式來排序元素,它的底層實現是維護了一個 NavigableMap對象,該對象的實現是使用了 TreeMap 類。 TreeSet 繼承自 AbstractSet 類,實現了 NavigableS

原创 手撕HashMap迭代器

HashMap 迭代器非常容易理解,先看類關係圖: 這三個迭代器,分別對應 entrySet,keySet 和 values 方法返回對象的迭代器。這三個方法分別返回 EntrySet ,KeySet 和 Values 對象,這

原创 SpringCloudConfig之分佈式配置中心

Spring Cloud 系列 eureka之服務治理完整過程搭建 eureka之高可用的註冊中心 eureka之詳解 ribbon之客戶端負載均衡 ribbon之配置詳解 Hystrix之服務容錯保護 Hystrix之使用詳

原创 手撕HashMap紅黑樹

紅黑樹 可以看作二叉搜索樹和平衡二叉樹(AVL 樹)的一個折中。 二叉搜索樹 、平衡二叉樹 二叉搜索樹:一棵空樹,或者是具有下列性質的 二叉樹: 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若右子樹不空

原创 SpringCloudZuul之API網關服務

Spring Cloud 系列 eureka之服務治理完整過程搭建 eureka之高可用的註冊中心 eureka之詳解 ribbon之客戶端負載均衡 ribbon之配置詳解 Hystrix之服務容錯保護 Hystrix之使用詳

原创 手撕ArrayList

ArrayList 能夠存儲元素,並支持按索引訪問。它的底層結構是數組,那麼它的擴容策略是怎樣? 初始化 查看構造函數: public ArrayList(int initialCapacity) { if (i

原创 談談線程安全與鎖優化

寫在前面 本文是作爲閱讀《深入理解Java虛擬機》第13章線程安全與鎖優化的讀書筆記; 線程安全是以多個線程之間存在共享對象爲前提的。它並不是一個非黑即白的問題。Brian Goetz 曾就線程安全的“安全程度” 按以下由強至