原创 erlang_mysql_driver 源碼分析1

erlang_mysql_driver 是個mysql的數據庫驅動 源碼主要包含 mysql mysql_conn mysql_recv mysql_auth 這幾個模塊 mysql模塊提供給外部調用的接口,包括啓動、添加連接、執行s

原创 erlang_mysql_driver 源碼分析2

pool模型 探究erlang_mysql_driver對同一時刻大量請求的支持 mysql:fetch 和 mysql_conn 今天看到網絡上的一篇文章說,erlang_mysql_driver的連接池實際上是沒有意義的。 大概意

原创 erlang_mysql_driver 源碼分析4

其實本來是要講erlang如何解決tcp粘包問題的,剛好erlang_mysql_driver裏面就有關於這個問題的一種解決方式,所以乾脆就以erlang_mysql_driver的源碼爲例來探究下該問題的解決方案。 tcp 粘包問題 m

原创 prim_inet:async_accept

無意中發現erlang服務器挺多使用prim_inet:async_accept,而不是gen_tcp:accept。查詢了下文檔和源碼,這兩個接口的主要區別還是在於同步和異步。async_accept是異步的,而accept是同步的,會

原创 統計某進程到mysql的連接數

1、 netstat是有權限的限制的,如果不是使用root用戶執行,很可能無法看到全部的結果,如下 netstat -tnp | grep 3306 (Not all processes could be identified, non

原创 erlang_mysql_driver 源碼分析3

mysql_conn 與 mysql_dispatcher 前面我們講了,mysql_conn與mysql_dispatcher的關係,mysql_dispatcher維護多個連接池,每個連接池裏有多個mysl_conn進程。我們查詢sq

原创 CentOS7配置samba4.2到Win8

環境與目標的說明:VMware11內的系統CentOS7通過samba4.2共享文件夾到主機Win8上。 samba服務在配置的時候老是出錯,讓我非常鬱悶,今天臨睡前突然想到一個問題,我在securecrt上登錄的是root賬號,而sa

原创 erlang 取整數的位或設置整數的位

我們經常會用到使用一個32位或64位的數來存儲只有兩種狀態的列表,(列表長度=< 64)。 比如使用2,二進制表示爲10,來表示一個第一位爲0,第二位爲1的列表。 再如使用6,二進制表示爲110,第一位爲0,第二位1,第三位1的列表。 最

原创 看到一句話,感受良多

以爲自由就是想做啥做啥。 後來才發現自律者纔會有自由。 當一個人缺乏自律的時候,他做的事情總是在受習慣和即時誘惑的影響,要麼就是被他人的思想觀念所擾,幾乎永遠不可能去做內心真正渴望的事。

原创 assert.h

什麼是assert C語言中的頭文件<assert.h>唯一的目的就是提供宏assert的定義。 我們可以在程序中關鍵的地方使用這個宏來進行斷言。如果一處斷言被證明爲非真,則程序在標準錯誤流輸出一條提示信息,並且使執行異常終止。 但在實際

原创 Nginx服務器的基本模塊

在功能上劃分: 核心模塊:內核模塊 事件驅動模塊 郵件模塊: HTTP服務模塊:HTTP內核模塊 標準模塊 可選的模塊 模塊也可分爲 在實際安裝中 必選模塊和可選模塊 Nginx的核心模塊中的內核模塊:用於控制NGINX服務器的基本功

原创 Linux格式化硬盤

格式化硬盤是指初始化硬盤的文件系統。文件儲存在硬盤上,硬盤的最小存儲單位叫做”扇區”(Sector)。每個扇區儲存512字節(相當於0.5KB)。 linux上的常見的文件系統 ext2 ext3 ext4。 1 inode 每個文件對

原创 Nginx的進程模型

Nginx分爲兩種進程模型:Single  Master Single是單進程方式工作 Master是一個Master進程+N個worker進程,通過ngx_master_process_cycle完成,源碼在ngx_process_cy

原创 Nginx源碼分析一

源碼包解壓之後,根目錄下有幾個子目錄和幾個文件 configure腳本會引用auto目錄下面的腳本文件來幹活 configure作爲一個總驅動,調用這些腳本去生成版本信息頭文件、默認被包含的模塊的聲明代碼和Makefile文件,版本信息頭

原创 erlang rpc 遠程調用

跨節點進行遠程調用的時候,會經常用到rpc模塊提供的方法,例如rpc:call、rpc:cast。那麼每個節點上的rpc模塊是怎麼工作的呢? rex進程 rpc模塊的啓動過程很簡單,並沒有初始化做太多事情,以{local,rex}的名稱啓