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。