原创 git 概覽圖

原创 Java訪問HTTPS不受信任證書問題解決

1.原因 Java在訪問SSL加密的網站時,需要從JDK的KeyStore 裏面去查找相對應得可信證書,如果不能從默認或者指定的KeyStore 中找到可信證書,就會報錯。 另外,Java所使用的證書倉庫並不是Windows系統自帶的證書管

原创 IP協議 頭部格式

IPv4 頭部結構 Version(版本號):IP 協議版本號。目前只有兩個版本:IPv4 和 IPv6 Header Length(IP 協議頭部長度):IP 協議頭部的長度,單位字節(32 bit)需要這個值是因爲任選字段的長度是可

原创 數據庫的隔離級別和 MVCC

MVCC (Multi-Version Concurrency Control),多版本併發控制。數據庫實現併發訪問請求,就是基於 MVCC 實現的。 首先了解下數據庫事物的隔離級別。 隔離級別 Read Uncommiteed 讀未提

原创 jvm 性能調優工具之 jstat

概述 Jstat是JDK自帶的一個輕量級小工具。全稱“Java Virtual Machine statistics monitoring tool”,它位於java的bin目錄下,主要利用JVM內建的指令對Java應用程序的資源和性能進行

原创 Netty 之 NioEventLoop 源碼分析

每一個 NioEventLoop 開啓一個線程,線程啓動時會調用 NioEventLoop 的 run 方法,執行I/O任務和非I/O任務 I/O任務 I/O 任務就是處理 Nio 中 Selector 中註冊的 4 種事件。 Select

原创 Netty 之 DefaultPromise 源碼解析

概述 promise 是可寫的 future, 因爲 future 不支持寫操作接口,netty 使用 promise 擴展了 future, 可以對異步操作結果進行設置。 DefaultPromise 繼承關係 Promise 接口定義

原创 Netty 之 FileRegion 文件傳輸

概述 Netty 傳輸文件的時候沒有使用 ByteBuf 進行向 Channel 中寫入數據,而使用的 FileRegion。下面通過示例瞭解下 FileRegion 的用法,然後深入源碼分析 爲什麼不使用 ByteBuf 而使用 File

原创 Netty 之 NioSocketChannel 源碼分析

NioSocketChannel public class NioSocketChannel extends AbstractNioByteChannel implements io.netty.channel.socket.SocketC

原创 Netty 線程模型

Reactor模型 Netty中的Reactor模型主要由多路複用器(Acceptor)、事件分發器(Dispatcher)、事件處理器(Handler)組成,可以分爲三種。 常見的Reactor線程模型有三種,分別如下: Reactor

原创 Netty 之 ChannelOutboundBuffer 源碼分析

每個 ChannelSocket 的 Unsafe 都有一個綁定的 ChannelOutboundBuffer , Netty 向站外輸出數據的過程統一通過 ChannelOutboundBuffer 類進行封裝,目的是爲了提高網絡的吞吐量

原创 Netty 之 AbstractNioByteChannel 源碼分析

Netty 版本:4.1.33.Final-SNAPSHOT AbstractNioByteChannel public abstract class AbstractNioByteChannel extends AbstractNioCh

原创 Netty 之 AbstractChannel 和 AbstractNioChannel 源碼分析

概述 channel 是 netty 網絡 IO 操作抽象出來的一個接口,主要功能有:網絡IO的讀寫,客戶端發起連接、主動關閉連接,鏈路關閉,獲取通信雙方的網絡地址等。 這裏我們只簡單分析下 AbstractChannel 和 Abstr

原创 Netty 之 ByteBuf 分析

概述 Netty 中的 ByteBuf 和 NIO 中的 ByteBuffer 的區別。 1、Netty 中的 ByteBuf 支持動態的擴容和縮容。而 NIO 中的 ByteBuffer不支持。 2、Netty 中的 ByteBuf 使

原创 RocketMQ 同步刷盤實現原理

未寫完,待續。。。。 public void handleDiskFlush(AppendMessageResult result, PutMessageResult putMessageResult, MessageExt message