Muluo是一个Linux平台高效基础库,采用C++11编写。
- 定义全局变量,程序启动时解析命令行参数并修改全局变量的值。
- 线程安全异步日志库,采用动态扩容缓冲区+可扩容双向循环链表设计。
- 递归下降JSON解析器和生成器,支持UTF-8编码。
-
基于半同步/半反应堆模型(Half-Sync/Half-Reactor)网络并发模型。
-
固定大小线程池,默认逻辑CPU数(Processor数), 可通过命令行参数更改。
-
主线程采用轮询Round Robin分发任务给线程池中工作线程实现负载均衡。
-
任务队列采用高性能非阻塞无锁队列moodycamel::ConcurrentQueue。
-
定时器容器采用层级时间轮设计,可设置时间轮层级和刻度以及时钟步长。
-
使用状态机和正则解析HTTP/1.1请求报文,实现URL路由分发及访问静态资源。
-
基于JSON序列化/反序列化的RPC框架,采用单一TCP长连接。
-
基于ucontext族函数实现Stackful N : 1协程, 共享线程栈(默认大小1MB)。
-
Hook部分可能阻塞的Linux系统调用,协程中使用,阻塞等待期间切换到其它协程