天天看點

Linux企業級開發技術(5)——libevent企業級開發之簡介

Libevent是一個用于編寫高速可移植非阻塞IO應用的庫,它的設計目标是:

可移植性:使用libevent編寫的程式應該可以在libevent支援的所有平台上工作。即使沒有好的方式進行非阻塞IO,libevent也應該支援一般的方式,讓程式可以在受限

的環境中運作。

速度:libevent嘗試使用每個平台上最高速的非阻塞IO實作,并且不引入太多的額外開銷。

可擴充性:libevent被設計為程式即使需要上萬個活動套接字的時候也可以良好工作。

友善:無論何時,最自然的使用libevent編寫程式的方式應該是穩定的、可移植的。

libevent由以下元件構成:

evutil:用于抽象不同平台網絡實作差異的通用功能。

event和event_base:libevent的核心,為各種平台特定的、基于事件的非阻塞IO後端提供抽象API,讓程式可以知道套接字何時已經準備好,可以讀或者寫,并且處理基

本的逾時功能,檢測OS信号。

bufferevent:為libevent基于事件的核心提供使用更友善的封裝。除了通知程式套接字已經準備好讀寫之外,還讓程式可以請求緩沖的讀寫操作,可以知道何時IO已經真

正發生。(bufferevent接口有多個後端,可以采用系統能夠提供的更快的非阻塞IO方式,如Windows中的IOCP。)

evbuffer:在bufferevent層之下實作了緩沖功能,并且提供了友善有效的通路函數。

evhttp:一個簡單的HTTP用戶端/伺服器實作。

evdns:一個簡單的DNS用戶端/伺服器實作。

evrpc:一個簡單的RPC實作。

安裝libevent庫:

注意:必須以root使用者身份執行以下操作

1、下載下傳源碼包

https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

2、解壓

tar zxvf libevent-2.0.21-stable.tar.gz

3、配置安裝路徑

cd libevent-2.0.21-stable

./configure -prefix=/usr

4、編譯并安裝

make

make install

5、測試libevent是否安裝成功:

    #ls -al /usr/lib | grep libevent

6、如果編譯後的程式提示找不到libvent的so,則建立庫的連結和緩存檔案

ldconfig

繼續閱讀