openresty组成和技术特点
一、组成
openresty包含4个部分,
第一个部分lua-nginx-module,ngx的c module,将lua协程的唤醒和挂起纳入nginx事件驱动模块中,并提供丰富的lua api,使得开发者可以使用lua语言可以完成http层操作
第二个部分,测试集,对lua-ngx-module做全面测试,工作量,复杂度高
第三部分,resty库,lrucache,beanstalkd,redis
第四部分,在生产环境中,出现cpu过高,或者单个cpu占用率过低问题,工具集中包含丰富systemap脚本,可以打印当前情况下,ngx和lua函数cpu占用时间,或者内存占用量
二、技术特点
1、lua中揉合和处理各种不同的nginx上游输出,ssdb,drizzle,postgres,redis,memcached
2、或者在访问请求到达上有服务器前,lua可以随心所欲的做复杂的访问控制和安全检查,防止一些sql注入,xss攻击
3、在内容句柄中随意编写复杂的web应用,使用同步的编程方式,内部是异步非阻塞的执行过程,去访问数据库或其他存储
4、在rewrite阶段,通过lua完成非常复杂的URL dispatch
三、业务使用
总体为两类,将ngx作为入口,另一类将ngx作为web application。得益于lua的易用性,和c的高效性。这些控制的时间复杂的不会太高,但是执行效率又非常优秀,上述技术特点决定,openresty业务场景很广泛。但目前只在c端行业广泛应用,在电商,存储,游戏设计到。
openresty组成和技术特点相关推荐
- 网关技术选型,为什么选择 Openresty ?事件驱动、协程...
今天跟大家聊下关于网关的话题 互联网公司,不论体量大小如何,其内部的技术架构基本都是相似的,体现在以下几个方面: 数据量过大,如何定制化存储 访问量高了,如何集群化部署,流量负载均衡 响应速度慢了,如 ...
- [转]OpenResty的现状、趋势、使用及学习方法
温铭,奇虎 360 企业安全服务端架构师,OpenResty 社区咨询委员会成员.一直在互联网安全公司从事服务端的开发和架构工作,致力于用互联网技术帮助企业提高安全防护.曾负责开发过木马云查杀和反钓鱼 ...
- OpenResty的现状趋势使用学习方法
OpenResty的现状.趋势.使用及学习方法 原创 2015-12-08 温铭 高可用架构 编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文根据奇虎 360 安全架构师温铭的分享 ...
- B站Up主上传质量调优实践
Up主上传的大量优质视频内容使得bilibili(B站)深受年轻用户的喜爱.bilibili视频云高级研发经理 唐君行在LiveVideoStack线上交流分享中详细介绍了B站为提供更流畅.稳定用户体 ...
- 京东商品详情页服务闭环实践
原文地址:http://blog.csdn.net/hackercn9/article/details/59508095 该文章是根据OpenResty Con 2015技术大会的演讲<Ngin ...
- 收集的计算机编程电子书目录,仅供日后查阅方便
本人有收集电子书的癖好.每日在网上收集经典的电子书籍,尤其喜欢原版的,看起来舒服.不过总是心血来潮,当时下载后瞅几眼,之后就束之高阁,再也不问津了.很为此苦恼,过后找某本书时也总是不知道在哪,为了查找 ...
- Java实现lucene搜索功能
直接上代码: package com.sand.mpa.sousuo;//--------------------- Change Logs---------------------- //<p ...
- openresty 前端开发序
还记得第一次尝试前后端分离的时候,是使用nginx + react 构建的spa应用,后端是java,主要处理业务逻辑逻辑部分,返回json数据,在nginx里面配置好html + js纯静态文件,再 ...
- 使用容器的正确方式,Docker在雪球的技术实践
" 雪球目前拥有一千多个容器,项目数量大概有一百多个,规模并不是很大.但是得益于容器技术,雪球部署的效率非常高,雪球的开发人员只有几十个,但是每个月的发布次数高达两千多次. 2018 年 5 ...
最新文章
- 商城数据库表设计介绍
- 【算法与数据结构】B-树学习笔记
- python一般用来开发什么-python主要用来做什么?Python开发简单吗?
- Atitit.5gl 第五代语言编程语言 PROLOG教程 人工智能语言的标准 与实现
- mysql map 键值对获取_mysql map_get function,用于解析map结构数据,根据key返回相对应value...
- VTK:Rendering之MotionBlur
- 解决:com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused:
- macos sierra怎么升级到catalina_Mac os 下 Pyhon 库老是安装失败?
- Struts与MVC分层理解
- python全栈脱产第20天------常用模块---re模块和subprocess模块
- mysql 关联顺序_Mysql 多表关联链接顺序说明
- 长时间看电脑的朋友,怎么保护您的眼睛
- 邮件合并批量制作邀请函
- 设值单元格字体和背景色的颜色-实例
- 循环-菲波那切数列II
- 【AD封装】RJ45座子(带3D)
- 【论文精读1】基于BN的模型剪枝-Learning Efficient Convolution Networks through Network Slimming
- 山外看山 —— 评The Art of Unix Programming
- 数据中台,概念炒作还是另有奇效? | TVP思享
- 2018最受欢迎开源免费CMS建站系统排行榜