原创 最重要的事只有一件,寫在2017年的開頭

新年快樂! 正月初十開始上班,本應該循規蹈矩寫點什麼類似計劃、勵志的語句。以便激勵自己新年再接着努力。 後面發現自己似乎已經沒有這份動力了,最近耳邊時不時能想起大學畢業之前聽到的一些關於工作,關於社會的經驗。「等工作幾年,就會

原创 Autowired註解閒談

早上看到一個朋友的個人空間說到自己面試被問及@autowired的實現。結果是卡殼了,回來之後覺得應該是反射之類的方式實現。個人感覺他說的也不能算錯,不過不是我想看到的答案,自己查了查資料,順便記下。 本段文字將包含如下幾個方面的內容:

原创 Spring Boot初體驗

Spring Boot 入門例子和說明 剛接觸Spring Boot,記錄一些簡單入門的知識點; Spring Boot能讓我們以最簡單的方式創建獨立的、產品級別的基於Spring的應用。 本文大部分內容來自spring boot的

原创 Perf4j的使用

perf4j介紹 Perf4j是一個應用性能分析工具,它能輸出方法的調用耗時,以便幫助開發者瞭解系統裏性能耗時的情況。 Perf4j的輸出文件,按tag分類,從不同的方面對一段時間內的調用,從數量上進行了分析和統計,稍後將會提到。 此

原创 Dubbo的擴展機制

Dubbo的擴展機制 Dubbo擴展原理 ExtensionLoader的設計和實現方式 自定義擴展例子 Dubbo的擴展原理 Dubbo採用的是內核+擴展的體系結構,除了Service和Config層,其他層的功能都是可擴展的(P

原创 Motan客戶端源碼閱讀

本文着重從源碼的角度探究Motan客戶端的如下幾個方面: 客戶端的使用 客戶端的實現 之前瞭解了一些Motan的服務啓動的底層代碼,瞭解到服務端其實是在Netty服務的基礎上綁定處理Handler並且進行包裝,以motan協議爲通訊方式,

原创 梳理Dubbo擴展的理解

不得不擴展 從SPI說起 ExtensionLoader 驗證自定義協議 不得不擴展 Dubbo分爲很多邏輯層,對於各個層的接口,Dubbo都提供了很多種的實現, 對於需要滿足很多使用個性需求的框架來說,單單是多提供幾個實現是不夠的。

原创 Motan服務的啓動

Motan是新浪於2016年開源的一個RPC框架,類似的已有的RPC框架有像阿里開源的Dubbo,還有後來在此基礎上做二次開源的當當網的dubbox。 Motan分爲服務提供方和服務調用方,服務提供方發佈服務,服務調用方調用服務。 看

原创 再談Motan服務的啓動

之前簡要地過了一遍Motan服務的啓動過程,感覺理解得還不夠清楚,所以接下來會就有疑惑的幾個點來做一次分析。 和之前一樣,以Motan服務的啓動爲依託,分析啓動過程中的幾個重要節點以及類,以此來窺探Motan服務端的設計架構

原创 Spring MVC源碼分析 - 請求和參數

從最原始的需求說起: 如果是我們自己設計這樣一個Web框架,應該考慮什麼問題? 如果是我,我覺得最少應該解決如下的問題: 1、我們只配置了一個DispatcherServlet,所有被這個Servlet攔截到的請求,都會交給Spring

原创 Spring配置文件解析

解析配置 解析配置,是Dubbo服務啓動的第一步,基於Spring配置結合的框架都是從這一步開始啓動的(包括之前提到的Motan); Dubbo官方文檔中提到: 初始化過程的第一步是從解析服務開始的,基於 dubbo.jar 內的 M

原创 B-Tree / B+Tree 結構以及MySQL索引

對MySQL的索引相關的問題以前一直很不清楚,最近了解了下樹和索引之間的關係,對這方面有了新的認識,感覺豁然開朗,留下一些筆記。 B-樹 B-樹不一定是二叉樹,B樹是一種平衡樹,它的高度是固定的; B樹是一種多路查找樹,也就是說它的

原创 Java動態代理

代理模式 Java動態代理 動態代理實現 代理是一種設計模式。在一些情況下,一個對象並不能或者並不希望被其他某些調用,代理就可以在這其中起到中介的作用。 這樣既可以使用真實對象的方法,又可以保護目標對象,還可以在真實方法調用的前後

原创 Spring AOP和動態代理

Spring AOP是Spring的一項很強大的功能。它的“面向切面編程”的思想是面向對象編程OOP的補充和完善。AOP允許我們從橫向的角度關注我們的程序,使得程序在安全處理,日誌,性能採集等代碼能在一個地方統一進行處理,而不用分佈在各個

原创 Parallel 收集器

1、如何查看JVM的運行參數 [root@vm-10-11-146-1 deploy]# jcmd 29473 VM.flags 29473: -XX:CICompilerCount=3 -XX:InitialHeapSize=62914