应用软件>程序员必备知识(三)

应用软件>程序员必备知识(三)

结合上一篇文章,我们选好了一款产品做我们的外网服务器,那么接下来,如果想依据成熟技术构建一个属于自己的应用服务器,可以使用OpenResty开源项目,这篇文章主要介绍OpenResty(开源技术)及其相关。

更多内容请关注 https://my.oschina.net/llzhang/blog

  • 应用软件程序员必备知识三
    • OpenResty概念
    • OpenResty理念
    • OpenResty可信度
    • Lua与LuaJIT
    • OpenResty与LuaLuaJIT

OpenResty概念

  • OpenResty(也称为ngx_openresty),是一个基于Nginx与Lua的高性能的Web应用服务器,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项,用于方便地搭建能够处理高并发、扩展性极高的动态Web应用、Web服务和动态网关。

  • OpenResty通过汇聚各种设计精良的Nginx模块,从而将Nginx有效地变成为一个强大的通用的Web应用平台,这样,Web开发人员和系统工程师可以使用Lua脚本语言调动Nginx支持的各种C以及Lua模块,快速构建出足以胜任10K乃至1000K以上单机并发连接的高性能Web应用系统。

OpenResty理念

  • OpenResty致力于将你的服务器端应用完全运行于Nginx服务器中,充分利用Nginx的事件模型来进行非阻塞I/O通信。不仅仅是和HTTP客户端间的网络通信是非阻塞的,与MySQL、PostgreSQL、Memcached、以及Redis等众多远方后端之间的网络通信也是非阻塞的。

OpenResty可信度

  • 因为OpenResty软件包的维护者也是其中打包的许多Nginx模块的作者,所以OpenResty可以确保所包含的所有组件可以可靠地协同工作。

Lua与LuaJIT

  • Lua 是一个小巧的脚本语言。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。
  • Lua 脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为脚本语言,也可以作为普通的文件,代替XML,INI等文件格式,并且更容易理解和维护。
  • 一个完整的Lua 解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的,这一切都决定了Lua是作为嵌入式脚本的最佳选择。
  • Lua 并没有提供强大的库,这是由它的定位决定的。所以lua不适合作为开发独立应用程序的语言。Lua有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。
  • LuaJIT 即采用C语言写的Lua代码的解释器。LuaJIT is a Just-In-Time Compiler for the lua programming language.
  • LuaJIT 可以像Lua那样嵌入到一个应用程序里。

OpenResty与Lua、LuaJIT

  • Nginx将LuaJIT VM嵌入其中,实现了OpenResty这个高性能服务端解决方案。

本文部分参考链接,借此感谢先行的前辈们

https://www.oschina.net/p/openresty

如有不妥之处,欢迎批评指正,感谢开源中国做出的贡献,本人开源中国链接如下:

https://my.oschina.net/llzhang/blog

你可能感兴趣的:(程序员必备知识)