原创 數據的網絡傳輸學習筆記

兩臺主機通信,數據從一臺主機傳到另一臺主機主要有以下三步工作: 1、主機A發送的數據進入線路 2、數據在線路中傳輸 3、數據從線路的另一端進入主機B中 其實第3步與第1步所做的事正好相反,先來看第1步中數據是怎麼流動的?這個過程主要經過了

原创 瀏覽器緩存學習筆記

簡介 瀏覽器是存在緩存的,一般會在用戶的文件系統中創建一個目錄用於存放緩存文件,其目的是減少服務器端的網絡開銷,提高用戶訪問速度。這種緩存主要分兩種: 1、需要和服務器交互(緩存協商),比如Last-Modified和ETag; 2、不需

原创 Apache Mina Filter

Mina中的過濾器處於IoService與IoHandler之間,用於過濾每一個I/O事件。本文分析Mina中的過濾器是怎麼串起來的? 前面提到了IoFilter,FilterChain等接口和類,在分析過濾器鏈怎麼串起來之前,有必要看一

原创 JAVA NIO Socket通道

概述 通道提供I/O服務的直接連接,用於緩衝區與文件或者Socket之間傳輸數據。JAVA中只定義了一個接口來完成對通道的抽象,在這個接口中只定義了關閉與是否打開兩個方法。在此接口的基礎上又分別抽象了可讀通道、可寫通道、可中斷通道、字節通

原创 Apache Mina Session

簡介 Mina每建立一個連接同時會創建一個session對象,用於保存這次讀寫需要用到的所有信息。從抽象類AbstractIoSession中可以看出session具有如下功能: 1、從attributes成員可以看出session可以存

原创 Jetty NIO模型

概述 jetty NIO是典型reactor模型,如下圖所示: 即:mainReactor負責監聽server socket,接受新連接,並將建立的socket分派給subReactor。subReactor負責多路分離已連接的sock

原创 MySQL binlog簡介

binlog是用於記錄數據庫的修改以及潛在的修改行爲的二進制文件。爲了提高性能,mysql默認只打了一些錯誤日誌,若要開啓binlog,需要做如下操

原创 Apache學習筆記之日誌文件

要了解一個web服務器的運行狀態,就得從日誌文件入手,Apache提供了很好的日誌控制機制給開發人員和運維人員使用。Apache中的日誌分爲兩種:一種是記錄apache運行錯誤的錯誤日誌,還有一種是運行過程中的訪問日誌。 錯誤日誌 錯誤

原创 JAVA NIO 緩衝區

緩衝區簡介 操作系統有用戶空間與系統空間的概念,JVM對應的JAVA進程是位於用戶空間的,處於該空間的進程不能直接訪問硬件設備,當JAVA進程要進行I/O操作時,只能通過系統調用將控制權交給內核,內核準備好進程所需要的數據,將這些數據拷貝

原创 案例分析:java中substring引發的Full gc

問題定位 由於應用頻繁地Full gc,就dump了內存下來用MAT分析,發現有個map佔用了98%的內存,於是找到這個map private ConcurrentMap<String, String> nick2numid = new

原创 Cassandra學習筆記之一致性hash回顧

每個節點都有一個哈希值,將這個哈希值配置到圓環上(0到2的32次方),相當於這個圓環分配給了這些節點,每個節點負責一段。數據根據同樣的哈希函數也得到

原创 Fork/Join框架之雙端隊列

簡介 ForkJoinPool管理着ForkJoinWorkerThread線程,ForkJoinWorkerThread線程內部有一個雙端隊列,這個雙端隊列主要由一個數組queue、數組下標queueBase、數組上標queueTop三

原创 Tomcat學習之ClassLoader

類裝載器 JDK中提供了3種不同的類加載器:啓動類裝載器,擴展類裝載器和系統類裝載器。引導類裝載器,用於引導啓動JAVA虛擬機,當執行一個JAVA程序時,就會啓動引導類裝載器,它是使用本地代碼來實現的,會裝載%JAVA_HOME%\\jr

原创 Fork/Join框架之Fork、Join操作

Fork Fork就是一個不斷分枝的過程,在當前任務的基礎上長出n多個子任務。 當一個ForkJoinTask任務調用fork()方法時,當前線程會把這個任務放入到queue數組的queueTop位置,然後執行以下兩句代碼: if ((s

原创 Apache Mina IoAcceptor與IoConnector

簡介 Apache mina是一個介於應用程序與網絡之間的NIO框架,它使程序員從繁瑣的網絡操作中解脫出來,花更多的時間在業務處理上。 如下圖所示,mina分爲三層 1、IOService層:處理IO操作 2、IOFilter層:過濾器鏈