原创 Apache HTTPClient 源碼解析:主流程

使用示例 最近使用 HTTPClient 踩了不少坑,故在此總結下。本文基於 HTTPClient 4.5.6 進行分析,分析源碼之前,先貼下用法示例: public class HttpUtil { private st

原创 Kafka 原理和架構解析

Kafka 是由 LinkedIn 開發的一個分佈式的消息系統,使用 Scala 編寫,它以可水平擴展和高吞吐率而被廣泛使用。Kafka 是一種分佈式的,基於發佈 / 訂閱的消息系統。主要設計目標如下: 以時間複雜度爲 O(1)

原创 【筆記】深入理解 Java 虛擬機:早期(編譯期)優化

文章目錄概述javac 編譯器javac 編譯過程解析與填充符號表註解處理器語義分析與字節碼生成標註檢查數據及控制流分析解語法糖字節碼生成Java 語法糖的味道泛型與類型擦除自動裝箱、拆箱與遍歷循環條件編譯實戰:插入式註解處理器總

原创 【筆記】深入理解 Java 虛擬機:晚期(運行期)優化

文章目錄概述Hotspot 虛擬機內的即時編譯器解釋器與編譯器編譯對象與觸發條件方法調用計數器回邊計數器編譯過程Client CompilerServer Compiler編譯優化技術優化技術概覽公共子表達式消除數組邊界檢查消除方

原创 HTTP 協議對比

HTTP 協議,即超文本傳輸協議(Hypertext transfer protocol)。是一種詳細規定了瀏覽器和萬維網(WWW = World Wide Web)服務器之間互相通信的規則,通過因特網傳送萬維網文檔的數據傳送協議

原创 Java BouncyCastle API 創建證書撤銷列表 CRL 和驗證證書有效性

創建 CRL 需要用到有 CRL 權限的 CA 機構私鑰和證書: Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvide

原创 Java bouncycastle API 創建 CSR 和簽發證書

引入 API <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</arti

原创 PKI 公鑰基礎設施原理與應用

文章目錄PKI 是什麼PKI 詳細介紹PKI 的組成核心算法CA 機構數字證書證書撤銷機制應用:訪問控制參考資料 PKI 是什麼 Public Key Infrastructure(PKI),中文叫做公鑰基礎設施,可以理解爲利用公

原创 Netty 的組件和設計

Netty 基於 Java NIO 的異步的和事件驅動的實現,保證了高負載下應用程序性能的最大化和可伸縮性。Netty 也包含了一組設計模式,將應用程序邏輯從網絡層解耦, 簡化了開發過程,同時也最大限度地提高了可測試性、模塊化以及

原创 Netty 與線程綁核

原文鏈接:https://netty.io/wiki/thread-affinity.html 如果你在開發低延遲的 Netty 應用程序,那麼你可能瞭解過線程親和性(thread af

原创 關於 HTTP 長連接

使用長連接能夠減少建立銷燬連接的消耗,三次握手、四次揮手對性能影響是很大的。一般 RPC 如 Dubbo 默認都是長連接的,HTTP 1.1 之上也可以支持長連接了,HTTP 2.0 也支持了單一長連接的多路複用。 一般 HTTP

原创 安全傳輸與身份認證

什麼是 TLS 安全傳輸呢? 傳輸層安全性協議(英語:Transport Layer Security,縮寫作TLS),及其前身安全套接層(Secure Sockets Layer,縮寫作SSL)是一種安全協議,目的是爲互聯網通信

原创 領域驅動設計概述

領域驅動設計(Domain Driven Design,DDD)是由 Eric Evans 最早提出的綜合軟件系統分析和設計的面向對象建模方法,如今已經發展成爲了一種針對大型複雜系統的領域建模與分析方法。它完全改變了傳統軟件開發工

原创 分佈式鏈路跟蹤技術(五):跨線程傳輸和上下文傳播

在分佈式鏈路跟蹤系統中,同一條請求處理鏈路要用一個全局唯一的 traceId 來標識,那就需要把 traceId 傳輸到該請求涉及的各個系統中。Trace 信息要在系統之間傳輸時,是通過各種 RPC 中間件裏埋點,把 Trace

原创 MVC 模型

MVC 是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不需要