原创 (一) RabbitMQ實戰教程(面向Java開發人員)之RabbitMQ相關概念介紹

前言 因爲項目組需要對RabbitMQ的使用進行優化,所以系統化的學習了RabbitMQ,寫下本系列博客的目的是希望能幫助到後續使用RabbitMQ的同學少走彎路,在閱讀本博客前我希望您已經對RabbitMQ有基本的瞭解。本篇博客

原创 02.Spring IOC源碼深度解析之容器的基本實現

在搭建完Spring源碼閱讀環境後,大家比較困惑的應該就是從哪裏開始入手閱讀Spring源碼了,衆所周知Spring的兩大特性爲IOC和AOP,那我們先以IOC爲例跟進Spring源碼。IOC(Inversion of Contr

原创 01.Spring源碼深度解析之IDEA源碼閱讀環境搭建

前言 相信大部分人在面試過程中都會被問到是否閱讀過Spring源碼 Spring底層如何實現 Spring使用了哪些設計模式等問題,通常遇到這種問題我是直接選擇死亡。因爲開始我覺的花時間去研究一門框架不如多學習幾個開源框架性價比來

原创 使用Docker+Gitlab+Docsify搭建公司內部文檔服務

文檔服務 使用Docker+Gitlab+Docsify搭建文檔服務 Docker環境配置 安裝Docker,Link:Centos7上安裝配置Docker 安裝Docker Compose,Link:Docker C

原创 Spring Security規則配置及端點(EndPoint)保護詳解

匹配規則 HttpSecurity.antMatcher(...)表示該安全規則只針對參數指定的路徑進行過濾 HttpSecurity.requestMatchers同上,唯一區別是可以接受多個參數【兩者不能同時使用】 HttpSe

原创 【Linux Centos7】ZooKeeper單機版安裝與部署

Zookeeper單機版安裝 關於我:http://huangth.com GitHub地址:https://github.com/RobertoHuang 下載Zookeeper 解壓Zookeeper安裝包 # tar

原创 死磕Netty源碼之ChannelPipeline源碼解析(一)

前言 ChannelPipeline數據管道是ChannelHandler數據處理器的容器,負責ChannelHandler的管理和事件的攔截與調度 關於我:http://huangth.com GitHub地址:https://git

原创 死磕Netty源碼之新連接接入源碼解析

前言 本博客主要是介紹Netty在新連接接入後的相關處理 關於我:http://huangth.com GitHub地址:https://github.com/RobertoHuang 免責聲明:本系列博客並非原創,主要借鑑和抄襲閃電俠

原创 死磕Netty源碼之內存分配詳解(二)PoolArena內存分配結構分析

前言 在應用層通過設置PooledByteBufAllocator來執行ByteBuf的分配,但是最終的內存分配工作被委託給PoolArena。由於Netty通常用於高併發系統所以各個線程進行內存分配時競爭不可避免,這可能會極大的影響內存

原创 死磕Netty源碼之內存分配詳解(一)(PooledByteBufAllocator)

前言 爲了避免頻繁的內存分配給系統帶來負擔以及GC對系統性能帶來波動,Netty4使用了內存池來管理內存的分配和回收,Netty內存池參考了Slab分配和Buddy分配思想。Slab分配是將內存分割成大小不等的內存塊,在用戶線程請求時根據

原创 Maven JAR包衝突問題排查及解決方案

前言 寫這篇文章的初衷是因爲今天在使用mvn dependency:tree命令時,突然想起一年前面試阿里的一道面試題。面試題是說假設線上發生JAR包衝突,應該怎麼排查?我那時候的回答是IDEA有個Maven Helper的插件,可以幫忙

原创 死磕Netty源碼之Reactor線程模型詳解(二)NioEventLoop的執行

前言 在上一篇博客介紹了NioEventLoop的啓動流程,這篇博客將介紹NioEventLoop的執行流程 關於我:http://huangth.com GitHub地址:https://github.com/RobertoHuang

原创 (六) RabbitMQ實戰教程(面向Java開發人員)之RabbitMQ消息的可靠性

消息可靠性 在項目中使用RabbitMQ時,我們可能會遇到這樣的問題:如一個訂單系統當用戶付款成功時我們往消息中間件添加一條記錄期望消息消費者修改訂單狀態,但是最終實際訂單狀態並沒有被修改成功。遇到這種問題我們排查的思路如下: 1.消息是

原创 死磕Netty源碼之服務端啓動源碼解析

前言 本博客講述的是Netty是如何綁定端口、啓動服務。啓動服務的過程中你將會瞭解到Netty各大核心組件 關於我:http://huangth.com GitHub地址:https://github.com/RobertoHuang

原创 (七) RabbitMQ實戰教程(面向Java開發人員)之RabbitMQ常用屬性詳解

RabbitMQ常用屬性詳解 本系列博客源碼GIT地址:https://github.com/RobertoHuang/RGP-RABBITMQ.git Alternate Exchange Alternate Exchange簡稱AE,