[libco] co_kimserver 简介
2021-11-14 本文已影响0人
wenfh2020
co_kimserver 是基于 libco 的高性能 TCP 网络通信框架。
详细请查看:github 。
1. 简述
co_kimserver
是高性能 TCP 网络通信框架。
- 多进程工作模式(manager/workers)。
- 基于腾讯开源的轻量级协程库 libco。
- 主要使用 C/C++11 语言开发。
- 支持 tcp 协议。
- 使用 protobuf 封装通信协议。
- 支持访问 mysql, redis (client: hiredis)。
- 通过 zookeeper 管理服务节点,支持分布式微服务部署。
2. 运行环境
项目支持 Linux 平台。源码依赖第三方库:
- mysqlclient
- protobuf3
- hiredis
- crypto++
- zookeeper_mt (安装 zookeeper-client-c)
【注意】libco 不兼容 jemalloc / tcmalloc,出现死锁。
3. 架构
单节点多进程工作模式,支持多节点分布式部署。
3.1. 单节点
- manager 父进程:负责子进程管理调度,外部连接初始接入。
- worker 子进程:负责客户端详细连接逻辑。
- module 动态库:业务源码实现。(参考:co_kimserver/src/modules/)
3.2. 多节点
服务节点通过 zookeeper
发现其它节点。(下图是客户端与服务端多节点建立通信流程。)