cf是什么? - 图1cf是什么? - 图2cf是什么? - 图3

cf是什么? - 图4

介绍:

cf全称为: CoreFramework. 一个基于Reactor事件驱动与协程的lua高性能网络框架, 目前主要面向HTTP Application开发.

cf内置了几十种常见的开发库与常见的第三方协议, 目前在快速开发业务原型上有不可比拟的优势.

cf内部主要实现了包括HTTP与HTTP Over Websoket协议的Server, 利用轻量级协程可以很轻松保持成千上万的长连接.

cf的框架内部实现源码仅几千行,同时在源码包含了一系列中文注释方便大家阅读与code review.

优点:

  • cf实现了高性内的异步协程、定时器等库用于简化异步代码编写难度;

  • cf底层重新实现了跨平台的Lua Socket(TCPUDP), 支持IPv4IPv6性能更高并且速度更快;

  • cfsocket添加了ssl支持(openssl/libressl), 在使用https等协议时不依赖第三方进行代理请求;

  • cf实现了lua版的非阻塞DNS解析与域名解析缓存, 解决了没有内置dns库的问题并优化缓存读取提升解析速度;

  • http协议基于目前业界最快的picohttp解析器, 手动开启-msse4后速度更快;

  • httpd库支持自动判断、多file上传、multi-part/form-data多参数上传;

  • 实现了非常实用的httpc库, 非常方便请求第三方接口进行数据交互(支持自定义header); 并且支持多个请求并发执行, 同域名、端口链接复用减少http每次请求带来的连接消耗以此提升性能;

  • 实现了Websocket协议支持(RFC6455), 内置在httpd库内部;

  • 内置redis/mqtt/stomp协议并实现了订阅/发布MQ库使用更加简单、高效;

  • 包含了第三方数据交换格式解析库(json/xml)/protobuf/msgpack等;

  • 集成了admin库并且内置lua template模板语法,

  • 封装CacheDB库, 提供断线重连、连接池等基础设施;

  • 实现了SMTP协议的, 支持发送text/html邮件;

  • 提供了crypt库, 并且内置了24种常见的加密与编码方式;

  • 其它…

使用场景:

cf目前支持多种多样的使用场景:

  • 基于容器技术的微服务场景(Swarm/Kubernetes); —— 推荐

  • 游戏服务器的前端代理层; —— 推荐

  • 内存/CPU资源较为紧缺的云服务器; —— 推荐

  • 对性能要求较高的无状态集群; —— 推荐

  • 海量长连接(Websocket)Agent集群; —— 推荐

  • 其它…

你不仅可以在短时间内(time < 0.1s)就能启动一个制作好的docker镜像, 也可以在集群内部轻易地扩展多个部署副本. 如果你的内存与CPU资源都非常紧张! 那么不妨考虑在不影响业务的情况下使用cf进行开发, 也许它可以有效帮助你减少一些成本。

基准

一份较为详细的基准测试来帮助您初步了解cf的优点.

最后:

如果你尝试使用它或正在使用它, 所有遇到的问题都可以在这里寻求帮助.

如果您想让其它人知道您在使用cf, 可以联系作者加入Users.