libco MySQL_开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石

libco是微信2013年开源的C/C++协程库,稳定运行在微信后台,支持后台同步编程模式和高并发。其特性包括无需业务逻辑改造、支持CGI框架、mysqlclient等第三方库、共享栈模式等。通过Hook同步API,如gethostbyname,实现异步化,提高并发能力。libco通过接口层、系统函数Hook层和事件驱动层构成技术架构,是微信后台框架的重要组成部分。
摘要由CSDN通过智能技术生成

微信于2013年开源的ibco库,是微信后台大规模使用的c/c++协程库,2013年至今稳定运行在微信后台的数万台机器上。libco在2013年的时候作为腾讯六大开源项目首次开源,ibco支持后台敏捷的同步风格编程模式,同时提供系统的高并发能力。

有关开发libco的背后故事,请见文章《微信异步化改造实践:8亿月活、单机千万连接背后的后台解决方案》。

libco支持的特性

libco主要特性:

无需侵入业务逻辑,把多进程、多线程服务改造成协程服务,并发能力得到百倍提升;

支持CGI框架,轻松构建web服务(New);

支持gethostbyname、mysqlclient、ssl等常用第三库(New);

可选的共享栈模式,单机轻松接入千万连接(New)。

libco完善简洁的协程编程接口:

类pthread接口设计,通过co_create、co_resume等简单清晰接口即可完成协程的创建与恢复;

类__thread的协程私有变量、协程间通信的协程信号量co_signal (New);

非语言级别的lambda实现,结合协程原地编写并执行后台异步任务 (New);

基于epoll/kqueue实现的小而轻的网络框架,基于时间轮盘实现的高性能定时器。

libco产生的背景

早期微信后台因为业务需求复杂多变、产品要求快速迭代等需求,大部分模块都采用了半同步半异步模型。接入层为异步模型,业务逻辑层则是同步的多进程或多线程模型,业务逻辑的并发能力只有几十到几百。随着微信业务的增长,系统规模变得越来越庞大,每个模块很容易受到后端服务/网络抖动的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值