Kiev框架简介
基辅是大推平台目前使用的Linux-C++后台开发框架。由多位资深架构师和资深C++工程师打造,在拥有数千万用户的大型分布式系统push平台上经过近年的测试。现在基辅每天为大推送平台中的数百个服务完成数百亿次RPC调用。
基辅作为一个完整的开发框架,是专门为大规模分布式系统背景而构建的C++开发框架。它由以下组件组成:
- RPC框架(TCP/UDP)
- FastCGI框架
- redis客户端(基于hiredis封装)
- mysql客户端(基于mysqlclient封装)
- mongodb客户端
- 配置中心客户端(Http协议, 基于curl实现)
- 基于zookeeper的分布式组件(服务发现、负载均衡)
- 日志模块
- 状态监控模块
- 核心模块是一个开源的CSP并发模型协程库(libgo)
并发模型
基辅采用了先进的CSP开发模型的变体(golang就是这样的模型),它继承了libgo。选择这种模式的主要原因是这种模式的开发效率远高于异步回调模式,而且不需要在性能上做任何妥协。本文将对几种常见的模型进行详细的比较。
CSP模型
CSP(Communicating Sequential Process)模型是目前非常流行的并发模型,golang语言采用的并发模型就是CSP模型。在CSP模型中,协作流程与协作流程之间没有直接通信,信息也不像Actor模型那样直接传递给目标协作流程,而是通过一个通道交换数据。
这种设计的好处是通过通道中间层降低了进程间交互的耦合性,同时保证了灵活性,非常适合开发