当前位置: 首页 > Web前端 > HTML5

Luaweb快速开发指南(一)——初识cf框架

时间:2023-04-05 14:09:22 HTML5

作者:什么是CandyMi?什么是比照?cf的全称是:CoreFramework。一个基于Reactor事件驱动和协程的Lua高性能网络框架,目前主要面向HTTP应用开发。cf的内部实现主要包括HTTP和HTTPOverWebsocket协议的服务端,通过使用轻量级协程可以轻松维护数千个长连接。cf内置了丰富的开发库和常用的第三方协议。目前在快速开发业务原型方面具有无可比拟的优势Advantages.cf的C代码和lua封装的框架内部实现源代码只有几千行。同时,源码中包含了一系列的中文注释,供大家阅读和代码审查。cf的优势:1.学习优势全中文wiki,issue。简单的Lua语法,快速入门教程,丰富的内置库,高效使用。2.开发优势在使用cf进行业务开发时,cf框架丰富的内置库会开始给我们很大的帮助:httpd库httpd为开发者提供了三种路由注入方式:api接口路由、使用页面路由、websocket路由.这些方法赋予了httpd库在面对API、HTML、Websocket时的处理能力。httpd还主动提供了一个非常简单的静态文件服务器,在开发过程中为开发者提供了nginx等静态文件查找读取行为,不依赖于chroot的文件路径健康检查功能。httpclibraryhttpclibrary提供了一套针对常见场景和微服务架构的通用接口请求方案。用户可以使用最简单的httpc.post、httpc.post、httpc.json、httpc.file方法快速完成业务原型开发。他们也可以使用httpc.class创建一个httpc对象,然后使用上面的方法进行业务开发。不同的是在httpc对象关闭前,连接不会主动关闭。开发者也可以使用httpc.multi_request方法同时并发请求多个第三方接口。一起返回调用者。以上函数都是httpc的内置函数。每当用Lua语言开发DB/Cache库时,都需要考虑连接池和连接复用的问题。可以试试看cf的mysql和redis封装的DB/Cache库。是的。DB和Cache库最大的功能是:断线重连、连接重用、连接自动管理。这也是DB/Cache图书馆存在的主要原因。MQ库MQ库为开发者提供了一套跨进程应用和实例共享的MQ发布订阅解决方案。目前实现了这些协议:stomp/redis/mqtt。MQ库主要解决:异步任务发布、全局广播订阅、任务队列等一系列特殊场景其他内置第三方或自行实现的库,如:mail、json/xml,地穴,管理员,cf;这些都是业务发展的好帮手.3。性能优势cf的源代码奉行KISS原则——“保持简洁明了”,用C语言编写后性能和稳定性只是加分项。使用Lua作为开发脚本语言也是因为其高效的运行时间和极低的内存占用可以保证资源的有效利用。使用对象重用来缓解频繁对象分配和释放带来的性能消耗,减少内存碎片并高效使用内存(即使使用默认内存分配器)。使用LuaCAPI提供的第三方加密、编码、协议解析等方法来平衡Lua的字符串处理带来的一些性能问题。4.独立集成大部分框架。用户习惯于fork一个足够稳定的版本,直到框架作者将尝试(可能不会)更新框架本身,直到发布下一个稳定版本。为了防止更复杂的目录引用,cf提供了第3个目录来分隔用户定义的集成库。并且在这个文件夹中提供了用于联合编译的文件makefile。当你编译cf(build、rebuild、clean)时,它会被传递给这个目录下的makefile。makefile的作用不仅仅是编译时使用的文件,还是自己脚本的用户管理集合。总而言之,用户可以随心所欲地集成。5、部署优势目前cf内置的httpd库可以独立提供稳定的httpd服务,但建议使用代理(负载均衡)软件搭建安全(SSL)连接环境。cf的轻量级依赖非常适合批量部署。无论是用于CaaS环境还是传统主机环境,都可以轻松上手。在cf项目的docker目录下提供了一个Dockerfile,其中包括:从安装依赖到运行的所有步骤。快速启动docker-compose部署文件。基于负载均衡器的动态伸缩配置示例。哪些人适合使用cf?动手能力强的C/C++开发人员。当前语言无法满足高级执行效率要求的开发人员需要开发轻量级的Web服务。需要大量依赖容器的开发者适合没有任何经验的轻量级Web开发者。快速学习后端开发的新手简直适合所有想快速学习后端开发的人极速安装使用docker快速下载、安装、运行。首先使用git克隆cf项目,重命名为app,然后进入app目录。参考命令:gitclonehttps://github.com/CandyMi/core_frameworkapp然后根据不同平台的要求安装docker和docker-compose,需要大家根据实际情况参考如何安装。最后进入app/docker目录,使用docker-compose-fdocker-compose-with-cfadmin.yamlup命令运行cfadmin测试镜像,查看效果。在主机上快速下载、安装并运行cf。本机操作环境支持Mac、Linux和FreeBSD。其他平台请使用之前的安装方法。先用git把cf项目克隆出来重命名为app,然后进入app目录。参考命令:gitclonehttps://github.com/CandyMi/core_frameworkapp然后根据实际操作系统使用setenv或export导入编译环境头文件。搜索目录和编译环境库文件目录:/usr/include/lib和/usr/include/include。然后开始安装依赖库:installreadline-devel,make,autoconf,gcc,file,openssl/libressl;推荐使用第三方包管理工具(apt/pacman/yum/brew/pkg)直接安装二进制版本安装libev;可以在这里下载,使用./configure--prefix=/usr/local&&make&&makeinstall安装安装lua5.3;可以点这里下载源码,根据实际平台macosx/freebsdMYCFLAGS=-fPIC&&makeinstall替换下面的命令makelinux/进行安装。最后编译安装cf。进入./app目录使用sudomakebuild安装,非管理员用户需要须藤。如果有错误,则安装完成。更多安装细节请参考不同平台的安装指南和安装错误的解决方法。测试1.测试基准下面是一个基准测试。2.测试代码在项目目录下的script文件夹中,如果需要测试文件方便大家自己测试使用。3.测试后台请参考(快速cfadmin后台体验)[https://github.com/CandyMi/co...]如何快速获取帮助githubWikiIssue继续学习下一章开始学习如何运行cf并使用httpd库构建高效稳定的web开发环境。