libevent簡介服務器
libevent是一個事件驅動的網絡庫,支持跨平臺,如Linux, *BSD, MacOS X, Solaris, Windows。支持I/O多路複用,epoll、poll、/dev/poll、select、kqueue等。網絡
libevnet額外提供了一個緩衝網絡I/O的高級框架,支持sockets, filters,rate-limiting, zero-copy file transmission, SSL和 IOCP。libevent還支持DNS,HTTP,RPC。框架
libevnet使用C語言編寫,事件框架是典型的Reactor模式,支持I/O、定時器、信號事件。做爲底層的網絡庫被普遍使用,如memcached。socket
Libevent構成memcached
libevent由如下組件構成:函數
Evutil:用於抽象不一樣平臺網絡實現差別的通用功能。spa
Event:封裝了fd,signal,事件處理函數。dns
Event_Base:管理全部的event。事件
Bufferevent:爲Libevent基於事件的核心提供更方便的封裝。rpc
Evbuffer:在Bufferevent下層實現緩衝功能。
Evhttp:簡單的http客戶端、服務器。
Evdns:簡單的DNS客戶端、服務器。
Evrpc:簡單的RPC。