原创 【源碼解析】mybatis的查詢調用過程

mybatis的查詢調用過程,其中涉及到了工廠設計、jdk動態代理。 1.【獲取mapper】:DefaultSqlSession#getMapper 2. MapperRegistry#getMapper 3. 【獲取mappe

原创 dubbo服務遠程調用的源碼解析

1.十層架構圖: 重點:服務降級,集羣容錯, 服務路由,負載均衡, 2.總結: (1)【MockClusterInvoker】若沒有指定mock屬性,或其值爲false,則沒有降級功能,如果有,則判斷是否以force開頭,是則強

原创 你爲什麼要使用RPC

首先什麼是RPC dubbo傳輸協議基於自定義報文的tcp協議。 首先要否認一點 http 協議相較於自定義tcp報文協議,增加的開銷在於連接的建立與斷開。http協議是支持連接池複用的,也就是建立一定數量的連接不斷開,並不會頻繁

原创 如何進行code review

代碼的設計是否符合設計要求 業務邏輯是否正確:業務流程是否按照詳細設計的流程走,不要出現原本是先A流程後B流程而設計的時候出現先B後A,或者丟失流程。 某些傳入參數是否合理:判斷某些接口的參數輸入是否是冗餘的,比如輸入A字段可以

原创 Spring擴展接口

bean的生命週期過程的接口 Spring爲容器內的bean生命週期提供了大量的擴展接口。可以實現這些接口,在Spring bean生命週期過程中對bean實例進行擴展。。 ApplicationContext中bean的生命週期

原创 dubbo服務訂閱的源碼解析

首先來個圖看下dubbo十層架構: 1.獲取動態代理對象 (1)通過工廠創建bean(2) 生成代理對象 2.獲取invoker (更新invoker列表) 總結: 在調用代理對象的方法的時候觸發代理對象初始化,真正的創建代

原创 dubbo本地服務暴露解析

本地服務暴露exportLocal @SuppressWarnings({"unchecked", "rawtypes"}) /** * always export injvm */ priva

原创 Apache Kafka: bootstrap-server is not a recognized option

我執行的語句bin/kafka-console-producer.sh --bootstrap-server 10.0.0.11:9092 --topic test 但是報錯了原因是版本不支持 It's not until Kaf

原创 dubbo服務暴露過程源碼詳解

dubbo服務暴露過程 入口:org.apache.dubbo.config.spring.ServiceBean#onApplicationEvent // 當Spring容器刷新時會觸發其執行 @Override publi

原创 redis info memory參數詳解

127.0.0.1:6379> info memory # Memory used_memory:12990064 used_memory_human:12.39M used_memory_rss:749568 used_memo

原创 springboot加載配置文件源碼解析

Spring是如何加載application.properties、application.yml、application-dev.yml、application-pro.yml等等的配置文件的?先後順序是怎麼樣的。 1.看Spr

原创 索引下推ICP詳解

using index condition ICP只能針對二級索引進行使用。不需要針對主鍵索引 MySQL5.6之前,查詢的時候,只會根據Index Key去存儲引擎層,確定索引的範圍,然後將該範圍內的 記錄取出來,返回到Sql

原创 Collectors.toMap報錯 :Duplicate key

第一種寫法:使用Collectors.toMap的方法,如果key重複會直接報錯 第二種寫法: 使用mergeFunction參數,可以取重複的key中的第一個或最後一個 方案1:#使用Collectors.toMap的方法,如果

原创 mysql之explain分析

在這裏對explain的各個字段進行詳細的分析,來幫助大家分析自己所寫的sql是否最佳的使用了索引。 首先是select_type:將select查詢分爲簡單(simple)和複雜兩種類型 複雜類型又分爲子查詢(subquery)

原创 什麼是雙親委派,有什麼好處?

雙親委派模型有兩個好處: 向上委託給父類加載,父類加載不了再自己加載 避免重複加載,防止Java核心api被篡改 加載器自上而下分別爲,啓動類加載器(Bootstrap ClassLoader), 拓展類加載器(Extensi