原创 spring後置處理器-BeanFactoryPostProcessor

package org.springframework.beans.factory.config; import org.springframework.beans.BeansException; /** * spring的擴

原创 spring源碼-後置處理器BeanPostProcessor接口

package org.springframework.beans.factory.config; import org.springframework.beans.BeansException; import org.spr

原创 zookeeper-分佈式鎖

實現的原理: 1. 利用Zookeeper瞬時有序節點的特性 2. 多線程併發創建瞬時節點時,得到有序的序列 3. 序號最小線程獲取鎖 4. 其它線程監聽自己序號的前一個序號 5. 前一個線程執行完成,刪除自己序號的節點

原创 分佈式事物幾種方案講解

一.分佈式事務的實現主要有以下 5 種方案 XA 方案 TCC 方案(*) 本地消息表 可靠消息最終一致性方案(**) 最大努力通知方案 二.兩階段提交方案/XA方案 所謂的 XA 方案,即:兩階段提交,有一個事務管理器的概念

原创 ThreadLocal基本知識點分析

一. ThreadLocal是什麼? ThreadLocal是一個將在多線程中爲每一個線程創建單獨的變量副本的類; 當使用ThreadLocal來維護變量時, ThreadLocal會爲每個線程創建單獨的變量副本, 避免因多線程操

原创 AQS,ReentrantLock

一. 什麼是AQS 在AQS內部會保存一個狀態變量state,通過CAS修改該變量的值,修改成功的線程表示獲取到該鎖,沒有修改成功,或者發現狀態state已經是加鎖狀態,則通過一個Waiter對象封裝線程,添加到等待隊列中,並掛起

原创 SpringCloud Feign的使用

一. 什麼是Feign Feign是一個聲明式的Web Service客戶端,使用Feign只需要創建一個接口加上對應的註解,比如:@FeignClient註解。SpringCloud Open Feign對Feign進行增強支持

原创 mysql-事物

一.Mysql事物特性 名稱 定義 Atomic:原子性 一個事務必須視爲一個不可分割的最小工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾 Consistency:一致性 數據庫總數從一個一致性

原创 mysql儲存引擎,索引,事物,鎖

一.兩種儲存引擎: myisam 不支持事務,不支持外鍵約束,索引文件和數據文件分開,這樣在內存裏可以緩存更多的索引,對查詢的性能會更好,適用於那種少量的插入,大量查詢的場景 innodb mysql 5.5之後的默認存

原创 JDK1.8 HashMap分析

一.HashMap概述: jdk1.7HashMap採用數組+鏈表實現,即使用鏈表處理衝突,同一hash值的節點都存儲在一個鏈表裏。但是當位於一個桶中的元素較多,即hash值相等的元素較多時,通過key值依次查找的效率較低,將會

原创 CAS(compare and set)原理

一.CAS原理講解圖

原创 Eureka-服務發現過慢問題

一.優化配置參數 在服務註冊和客戶端配置的參數優化 eureka.server.responseCacheUpdateIntervalMs = 3000 eureka.client.registryFetchIntervalS

原创 Spring Cloud架構原理

架構原理圖 一.Spring Cloud主要的中間件 Eureka:服務註冊中心 Feign:服務調用 Ribbon:負載均衡 Zuul/Spring Cloud Gatway:網關 Hystrix、鏈路追蹤、stream

原创 Euraka-服務註冊和發現原理

Eureka服務註冊原理圖: 服務註冊和發現的過程 服務b註冊到Eureka註冊中心,註冊成功,定時發送心跳,確保自己是成功連接 把註冊的服務儲存 2.1 服務註冊中心,同時開啓一個線程,檢查註冊服務是否定時發送心跳過來 2.

原创 zuul-封裝灰度發佈,動態路由

一.灰度發佈 準備一個數據庫和一個表(也可以用Apollo配置中心、Redis、ZooKeeper,其實都可以),放一個灰度發佈啓用表 id service_id path enable_gray_release CREAT