原创 MySQL應用併發優化實踐

測試環境 應用結構: JWS(基於Play定製)+2次庫表寫入+分庫分表 目標:TPS=5000 測試工具:Jmeter、Sysbench 併發線程:16 性能目標 TPS>=5000 現狀 採用

原创 Linux學習系列-輪詢函數

理解這三個輪詢函數差異的關鍵在於理解其輪詢的文件描述符(socket也是文件)的數據結構。 select輪詢函數 函數定義: int select(int nfds, fd_set *readfds, fd_set *wr

原创 C3P0連接超時分析

背景知識 c3p0是一個開源的、基於Java JDBC 規範的連接池管理框架。 官網地址:[http://www.mchange.com/projects/c3p0/] 獲取連接的過程 c3p0構造了一個Connec

原创 從無到有:軟件項目過程敏捷實踐

項目過程分解 通過本次消息中間件系統的全程參與,對於軟件項目從無到有的生產過程有了較深入的瞭解,尤其對於架構設計的決策過程和依據,有了全面的認識。整個項目過程從無到有依次可以分解爲九個過程,下面一一道來。 (一)背景分析 主

原创 消息中間件主備方案選型實踐

背景介紹 該消息中間件由三個子系統組成:客戶端SDK、Server和控制管理中心(Admin)。我們所說的主備主要是針對Server,而Server的節點是局部有狀態的,具體而言就是發佈無狀態,但是拉取有狀態。因此,對於發佈而言

原创 Linux學習系列-信號

信號的定義和分類 信號是軟件中斷,提供了典型的異步機制。每個信號有一個編號,信號分爲兩類:非實時信號和實時信號。0-31編號屬於非實時信號;31-63編號屬於實時信號。爲什麼會分爲這兩類信號呢?這個主要是因爲歷史原因,首先實現的

原创 【連載】關係型數據庫是如何工作的?(1) - 前言

譯者說明 這一系列博文翻譯自一篇國外博主Christophe的博文。該博文詳細介紹了關係型數據庫是如何工作的,其詳實程度堪比專業數據庫教材,但又更加精煉扼要,讓讀者能在短時間內理解數據庫的底層原理。在此,對寫出這篇長篇大作的原文作

原创 Java NIO寫事件處理技巧

問題背景 OP_WRITE事件是在Socket發送緩衝區中的可用字節數大於或等於其低水位標記SO_SNDLOWAT時發生。正常情況下,都是可寫的,因此一般不註冊寫事件。所以一般代碼如下: while (bb.hasRemain

原创 Linux學習系列-IO模型

IO模型是什麼? 個人理解IO模型就是應用程序進行IO操作時和操作系統的通信和協作方式。 爲什麼要學習IO模型? 我個人在學習Netty、Mina等網絡編程框架時,搜索網上資料以及看書的過程中,經常會碰到一些名詞:同步、異步

原创 TCP協議Nagle算法和Delayed ACK相互影響實例分析

建議:閱讀本文之前,最好對於TCP的發送、重發以及ACK機制有所瞭解。 問題描述 最近在一個消息中間件系統(該消息中間件由客戶端SDK和服務端Server組成)的性能測試時,發現每個請求的響應時間大概在40ms-50ms之間

原创 分析問題和學習知識的方法論區別

無論是分析問題還是學習知識,都是有規律可循的,遵循這個規律會事半功倍。這個規律,我們就可以稱之爲方法論。總結起來就是三個關鍵詞:What、How、Why。但是二者不同之處在於三個關鍵點的組織順序不一樣。 分析問題 方法論:W

原创 Netty中ChannelHandler共享數據的方式

(一)成員變量 public class DataServerHandler extends SimpleChannelHandler { // 成員變量 private boolean loggedIn;

原创 JVM的Heap Memory和Native Memory

JVM管理的內存可以總體劃分爲兩部分:Heap Memory和Native Memory。前者我們比較熟悉,是供Java應用程序使用的;後者也稱爲C-Heap,是供JVM自身進程使用的。Heap Memory及其內部各組成的大小

原创 基於Netty的“請求-響應”同步通信機制實現

需求描述 實現基於Netty的“請求-響應”同步通信機制。 設計思路 Netty提供了異步IO和同步IO的統一實現,但是我們的需求其實和IO的同步異步並無關係。我們的關鍵是要實現請求-響應這種典型的一問一答交互方式。要實現這個需

原创 【連載】關係型數據庫是如何工作的?(3) - 歸併排序

當你需要對一個集合排序時,你會怎麼做?什麼?你會調用排序函數…好吧,也算個好答案…但是對於數據庫來說,你必須理解這個排序函數是如何工作的? 有很多高效的排序算法,但讓我們聚焦於最重要的一個:歸併排序。你現在也許不太明白排序爲什麼很