Libevent應用 (零) Libevent簡單介紹與安裝

嚇人的猿發表於2018-03-03

高併發libevent

​ 現在高效能網路伺服器基本都是非同步I/O模式構建的,而Libevent就是對select、poll、epoll等各類非同步模式介面的封裝,通過設定回撥函式的方式,在監聽檔案描述符和套接字讀寫事件的同時,還兼任定時器和訊號接收的管理工作。

​ 所以Libevent對高效能伺服器後臺開發、跨平臺開發、網路開發都具有很大的參考學習價值。官方主頁顯示很多的專案都用到了Libevent庫,而且還可作為主機內部程式間通訊和資料互動。Libevent也考慮到pthread執行緒模型的同步問題,保證關鍵資料結構在多執行緒並行下的資料安全! 

​ libevent 由下列元件構成:

  1. evutil:用於抽象不同平臺網路實現差異的通用功能。

  2. event 和event_base:libevent 的核心,為各種平臺特定的、基於事件的非阻塞IO 後端提供抽象API,讓程式可以知道套接字何時已經準備好,可以讀或者寫,並且處理基本的超時功能,檢測OS 訊號。

  3. bufferevent:為libevent 基於事件的核心提供使用更方便的封裝。除了通知程式套接字已經準備好讀寫之外,還讓程式可以請求緩衝的讀寫操作,可以知道何時IO 已經真正發生。(bufferevent 介面有多個後端,可以採用系統能夠提供的更快的非阻塞IO 方式,如Windows 中的IOCP。)

  4. evbuffer:在bufferevent 層之下實現了緩衝功能,並且提供了方便有效的訪問函式。

  5. evhttp:一個簡單的HTTP 客戶端/伺服器實現。

  6. evdns:一個簡單的DNS 客戶端/伺服器實現。

  7. evrpc:一個簡單的RPC 實現

​ ubuntu上安裝libevent只需輸入以下命令:

sudo apt-get install libevent-dev

​ 也可以直接到官網上下載原始碼包來安裝。http://libevent.org/

#在當前目錄下解壓安裝包:
tar -zxvf libevent-2.0.22-stable.tzr.gz
cd libevent-2.0.22-stable
#配置安裝庫的目標路徑:
./configure --prefix=/usr
#編譯安裝libevent庫:
make
make install
#檢視libevent庫是否安裝成功:
ls -al /usr/lib | grep libevent

通過函式event_get_version()可以檢視libevent的版本。

相關文章