1.muduo的介绍的总结
- 不支持 UDP,只支持 TCP。
UDP适合音视频 - 支持使用模式: non-blocking IO + one event loop per thread和thread poll,不支持阻塞 IO
- API 简单易用,只暴露具体类和标准库里的类。 API 不使用 non-trivial templates(有用的构造函数),也不使用虚函数
- 只做 library,不做成 framework。
muduo库具有框架的特征,可以实现:控制翻转
(1)库中的类相对独立,编写应用时,需要编写一些 胶水代码来粘合。
框架是能够应用于特定领域的,不需要胶水代码来粘合。
(2)框架为用户提供一些注册回调函数,使得框架能够调用我们所编写的回调函数,及:控制反转(框架调用回调函数)
2.muduo的安装的总结
- 参考<muduo网络库的使用手册>,这里仅仅总结一些重点
- 安装过程:
$ sudo apt-get install cmake
$ sudo apt-get install libboost-dev
$ tar zxf muduo-0.9.1-beta.tar
$ cd muduo/
$ ./build.sh
说明:
(1)./build.sh -j2表示使用2个线程来编译
(2)./build.sh install,会将muduo头文件和静态库文件(muduo只提供了静态库)安装到与muduo文件夹同级
的../build/debug-install/(include,net,lib):
include是muduo的头文件,net是网络的头文件,lib是静态库文件
(3)g++ -I 指定头文件的路径 -L 指定库的路径
- 按照(1)build的结果是:
- 运行示例:
$ ./inspector_test
在网页上输入:http://192.168.244.100:12345/proc/status
说明:
(1)运行的路径:不在muduo中的,与muduo目录同一级的build/debug/bin中,
编译的http库在build/debug/lib/libmuduo_http.a中;
build/debug/lib/libmuduo_base.a是基础库
build/debug/lib/libmuduo_net.a是网络库,其依赖于基础库
(2)前面是虚拟机的IP地址,12345是http的端口
(3)http的接口,先到任务服务器,再把任务服务器分配到后端的应用服务器,后端的应用服务器暴露一个端口给任务服务器
(任务服务器通过该接口可以查询后端的状态),让任务服务器可以起到负载均衡的作用
- 对于上述(2),其结果如下所示: