# 视频地址
[\[C++高级教程\]从零开始开发服务器框架(sylar)](https://www.bilibili.com/video/av53602631/?from=www.sylar.top "")
# 视频教程内容:
## 1.日志模块
支持流式日志风格写日志和格式化风格写日志,支持日志格式自定义,日志级别,多日志分离等等功能
流式日志使用:SYLAR_LOG_INFO(g_logger) << "this is a log";
格式化日志使用:SYLAR_LOG_FMT_INFO(g_logger, "%s", "this is a log");
支持时间,线程id,线程名称,日志级别,日志名称,文件名,行号等内容的自由配置
## 2.配置模块
采用约定由于配置的思想。定义即可使用。不需要单独去解析。支持变更通知功能。使用YAML文件做为配置内容。支持级别格式的数据类型,支持STL容器(vector,list,set,map等等),支持自定义类型的支持(需要实现序列化和反序列化方法)使用方式如下:
```cpp
static sylar::ConfigVar<int>::ptr g_tcp_connect_timeout =
sylar::Config::Lookup("tcp.connect.timeout", 5000, "tcp connect timeout");
```
定义了一个tcp连接超时参数,可以直接使用 g_tcp_connect_timeout->getValue() 获取参数的值,当配置修改重新加载,该值自动更新
上述配置格式如下:
```sh
tcp:
connect:
timeout: 10000
```
## 3.线程模块
线程模块,封装了pthread里面的一些常用功能,Thread,Semaphore,Mutex,RWMutex,Spinlock等对象,可以方便开发中对线程日常使用
为什么不适用c++11里面的thread
本框架是使用C++11开发,不使用thread,是因为thread其实也是基于pthread实现的。并且C++11里面没有提供读写互斥量,RWMutex,Spinlock等,在高并发场景,这些对象是经常需要用到的。所以选择了自己封装pthread
## 4.协程模块
协程:用户态的线程,相当于线程中的线程,更轻量级。后续配置socket hook,可以把复杂的异步调用,封装成同步操作。降低业务逻辑的编写复杂度。
目前该协程是基于ucontext_t来实现的,后续将支持采用boost.context里面的fcontext_t的方式实现
## 5.协程调度模块
协程调度器,管理协程的调度,内部实现为一个线程池,支持协程在多线程中切换,也可以指定协程在固定的线程中执行。是一个N-M的协程调度模型,N个线程,M个协程。重复利用每一个线程。
## 6.IO协程调度模块
继承与协程调度器,封装了epoll(Linux),并支持定时器功能(使用epoll实现定时器,精度毫秒级),支持Socket读写时间的添加,删除,取消功能。支持一次性定时器,循环定时器,条件定时器等功能
## 7.Hook模块
hook系统底层和socket相关的API,socket io相关的API,以及sleep系列的API。hook的开启控制是线程粒度的。可以自由选择。通过hook模块,可以使一些不具异步功能的API,展现出异步的性能。如(mysql)
## 8.Socket模块
封装了Socket类,提供所有socket API功能,统一封装了地址类,将IPv4,IPv6,Unix地址统一起来。并且提供域名,IP解析功能。
## 9.ByteArray序列化模块
ByteArray二进制序列化模块,提供对二进制数据的常用操作。读写入基础类型int8_t,int16_t,int32_t,int64_t等,支持Varint,std::string的读写支持,支持字节序转化,支持序列化到文件,以及从文件反序列化等功能
## 10.TcpServer模块
基于Socket类,封装了一个通用的TcpServer的服务器类,提供简单的API,使用便捷,可以快速绑定一个或多个地址,启动服务,监听端口,accept连接,处理socket连接等功能。具体业务功能更的服务器实现,只需要继承该类就可以快速实现
## 11.Stream模块
封装流式的统一接口。将文件,socket封装成统一的接口。使用的时候,采用统一的风格操作。基于统一的风格,可以提供更灵活的扩展。目前实现了SocketStream
## 12.HTTP模块
采用Ragel(有限状态机,性能媲美汇编),实现了HTTP/1.1的简单协议实现和uri的解析。基于SocketStream实现了HttpConnection(HTTP的客户端)和HttpSession(HTTP服务器端的链接)。基于TcpServer实现了HttpServer。提供了完整的HTTP的客户端API请求功能,HTTP基础API服务器功能
## 13.Servlet模块
仿照java的servlet,实现了一套Servlet接口,实现了ServletDispatch,FunctionServlet。NotFoundServlet。支持uri的精准匹配,模糊匹配等功能。和HTTP模块,一起提供HTTP服务器功能
## 14.其他相关
联系方式:
QQ:564628276
邮箱:564628276@qq.com
微信:sylar-yin
QQ群:8151915(sylar技术群)
个人主页:www.sylar.top
github:https://github.com/sylar-yin/sylar
没有合适的资源?快使用搜索试试~ 我知道了~
C++高性能分布式服务器框架
共226个文件
cc:112个
h:84个
yml:11个
需积分: 5 0 下载量 132 浏览量
2024-01-17
13:51:23
上传
评论 2
收藏 443KB ZIP 举报
温馨提示
C++高性能分布式服务器框架,webserver,websocket server,自定义tcp_server(包含日志模块,配置模块,线程模块,协程模块,协程调度模块,io协程调度模块,hook模块,socket模块,bytearray序列化,http模块,TcpServer模块,Websocket模块,Https模块等, Smtp邮件模块, MySQL, SQLite3, ORM,Redis,Zookeeper)
资源推荐
资源详情
资源评论
收起资源包目录
C++高性能分布式服务器框架 (226个子文件)
roaring.c 468KB
redis.cc 41KB
table.cc 35KB
mysql.cc 31KB
bitmap.cc 26KB
util.cc 25KB
log.cc 23KB
http_connection.cc 18KB
socket.cc 17KB
sqlite3.cc 17KB
address.cc 16KB
bytearray.cc 14KB
hash_util.cc 14KB
load_balance.cc 14KB
name_server_module.cc 13KB
hook.cc 13KB
fox_thread.cc 13KB
util.cc 13KB
test_bitmap.cc 13KB
iomanager.cc 12KB
application.cc 12KB
service_discovery.cc 12KB
http.cc 9KB
http_parser.cc 9KB
test_config.cc 9KB
rock_protocol.cc 8KB
ws_session.cc 8KB
rock_stream.cc 8KB
crypto_util.cc 8KB
scheduler.cc 8KB
async_socket_stream.cc 7KB
column.cc 7KB
module.cc 6KB
test_crypto.cc 6KB
fiber.cc 6KB
ns_client.cc 6KB
zlib_stream.cc 6KB
ns_protocol.cc 5KB
test_http_connection.cc 5KB
timer.cc 5KB
servlet.cc 5KB
status_servlet.cc 5KB
smtp.cc 5KB
zk_client.cc 5KB
ws_connection.cc 4KB
roaring_bitmap.cc 4KB
tcp_server.cc 4KB
json_util.cc 4KB
test_sqlite3.cc 4KB
env.cc 4KB
test_nameserver.cc 4KB
test_zlib_stream.cc 3KB
test_zookeeper.cc 3KB
test_bytearray.cc 3KB
test_socket.cc 3KB
config.cc 3KB
daemon.cc 3KB
worker.cc 3KB
test_module.cc 3KB
test_mysql.cc 3KB
library.cc 2KB
rock_server.cc 2KB
orm.cc 2KB
test_http_parser.cc 2KB
test_orm.cc 2KB
test_http_server.cc 2KB
fd_manager.cc 2KB
ws_servlet.cc 2KB
email.cc 2KB
test_iomanager.cc 2KB
echo_server.cc 2KB
socket_stream.cc 2KB
http_session.cc 2KB
echo_udp_client.cc 2KB
test_util.cc 2KB
thread.cc 2KB
http_server.cc 2KB
test_service_discovery.cc 2KB
test_timed_lru_cache.cc 2KB
test_thread.cc 2KB
test_hook.cc 2KB
test_address.cc 2KB
test_env.cc 2KB
protocol.cc 2KB
test_timed_cache.cc 2KB
index.cc 1KB
mutex.cc 1KB
session_data.cc 1KB
ws_server.cc 1KB
test_array.cc 1KB
config_servlet.cc 1KB
stream.cc 1KB
test_dict.cc 1KB
test_email.cc 1KB
test_hashmultimap.cc 1KB
test_hashmap.cc 1KB
echo_server_udp.cc 1KB
test_fiber.cc 1KB
test.cc 1KB
test_rock.cc 1KB
共 226 条
- 1
- 2
- 3
资源评论
csdn_aspnet
- 粉丝: 8310
- 资源: 64
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLOV4-TINY权重文件
- 以下是一个使用贪心算法解决多机调度问题的基本步骤0.txt
- 基于大数据的房产估价是近年来随着技术的发展而兴起的一种新型估价方法.txt
- 企业供应链管理系统v3.rar
- 富芮坤FR8016HA蓝牙开发板使用手册+硬件PCB图+封装库+DEMO演示软件源代码.zip
- 基于YOLOv7的芯片表面缺陷检测系统
- 京东物流 数字化供应链综合研究报告2018.rar
- 基于YOLOv7的植物虫害识别&防治系统
- 2000.1-2023.8中国经济政策不确定性指数月度数据.xlsx
- Screenshot_2024-04-21-20-42-15-443_com.tencent.mm.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功