
nginx+lua
文章平均质量分 86
gb4215287
这个作者很懒,什么都没留下…
展开
-
分布式限流之Nginx+Lua实现
nginx+lua实现限流转载 2022-12-26 15:53:14 · 197 阅读 · 0 评论 -
分布式限流方案(gateway限流,redis+lua实现限流,nginx限流)
分布式限流转载 2022-12-26 15:48:58 · 703 阅读 · 0 评论 -
分布式接口幂等性、分布式限流(Guava 、nginx和lua限流)
分布式限流转载 2022-12-26 15:44:52 · 204 阅读 · 0 评论 -
「高并发」亿级流量场景下如何实现分布式限流?
lua实现分布式限流转载 2022-12-26 15:42:30 · 205 阅读 · 0 评论 -
PHP中使用redis 执行lua脚本
在php中,可以通过redis执行lua脚本1、脚本 <?php $redis = new Redis(); #实例化redis类 $redis->connect('127.0.0.1'); #连接服务器 $lua = <<<SCRIPT return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]} SCRIPT; //对应的redis命令如下 eval "return {..转载 2020-09-22 18:09:51 · 780 阅读 · 0 评论 -
php7.0支持调用lua脚本
需求前瞻: 最近因需求,需要支持php调用现有的Lua代码,可以减少php的代码量,同时在维护上也比较方便,不会照成需求变更,需要同时修改两份代码第一步:安装php7.0及以上版本,此处安装方法就略过第二步: 官网下载最新lua安装包5.3.3 www.php.net官网搜索lua,下载php对应的lua包 http://php.net/manual/zh/book.lua.php 此处有详细的安装说明 切记php、lua、php的lua扩展包,这三个包的必须..转载 2020-09-22 18:08:38 · 969 阅读 · 0 评论 -
ngx_lua与go高并发性能对比
nginx在处理高并发能力上非常出色,而go作为新时代互联网语言,在设计之初就为实现高并发。ngx_lua由nginx来处理网络事件,并使用协程来实现非阻塞,从而实现高并发。 go语言级别提供非阻塞的api,同样使用协程来提供高并发处理。我们来测试对比一下两者的性能。ngx_lua:Tengine/1.4.3+luajit+ngx_luago:go1.0.3分别实现5转载 2017-09-06 13:51:26 · 5327 阅读 · 0 评论 -
京东商品详情页服务闭环实践
该文章是根据OpenResty Con 2015技术大会的演讲《Nginx+Lua在京东商品详情页的大规模应用》细化而来,希望对大家有用。 京东商品详情页技术方案在之前《构建需求响应式亿级商品详情页》这篇文章已经为大家揭秘了,接下来为大家揭秘下双十一抗下几十亿流量的商品详情页统一服务架构,这次双十一整个商品详情页没有出现不服务的情况,服务非常稳定。统一服务提供了:促销和广告词合并服务、库存转载 2017-07-25 01:20:49 · 464 阅读 · 0 评论 -
应用多级缓存模式支撑海量读服务
缓存技术是一个老生常谈的问题,但是它也是解决性能问题的利器,一把瑞士军刀;而且在各种面试过程中或多或少会被问及一些缓存相关的问题,如缓存算法、热点数据与更新缓存、更新缓存与原子性、缓存崩溃与快速恢复等各种与缓存相关的问题。而这些问题中有些问题又是与场景相关,因此如何合理应用缓存来解决问题也是一个选择题。本文所有内容是跟读服务缓存相关,不会涉及写服务数据的缓存。本文也不考虑内容型应用前置的CDN架构转载 2017-07-25 01:19:01 · 269 阅读 · 0 评论 -
用lua扩展你的Nginx(写的非常好)
一. 概述Nginx是一个高性能,支持高并发的,轻量级的web服务器。目前,Apache依然web服务器中的老大,但是在全球前1000大的web服务器中,Nginx的份额为22.4%。Nginx采用模块化的架构,官方版本的Nginx中大部分功能都是通过模块方式提供的,比如Http模块、Mail模块等。通过开发模块扩展Nginx,可以将Nginx打造成一个全能的应用服务器,这样可以将一些功能在前转载 2017-07-14 11:11:10 · 419 阅读 · 0 评论 -
第八章 流量复制/AB测试/协程
流量复制在实际开发中经常涉及到项目的升级,而该升级不能简单的上线就完事了,需要验证该升级是否兼容老的上线,因此可能需要并行运行两个项目一段时间进行数据比对和校验,待没问题后再进行上线。这其实就需要进行流量复制,把流量复制到其他服务器上,一种方式是使用如tcpcopy引流;另外我们还可以使用nginx的HttpLuaModule模块中的ngx.location.capture_multi进行转载 2017-07-03 21:13:07 · 582 阅读 · 0 评论 -
第七章 Web开发实战2——商品详情页
本章以京东商品详情页为例,京东商品详情页虽然仅是单个页面,但是其数据聚合源是非常多的,除了一些实时性要求比较高的如价格、库存、服务支持等通过AJAX异步加载加载之外,其他的数据都是在后端做数据聚合然后拼装网页模板的。http://item.jd.com/1217499.html 如图所示,商品页主要包括商品基本信息(基本信息、图片列表、颜色/尺码关系、扩展属性、规格参数、包装清转载 2017-07-03 21:11:44 · 3767 阅读 · 0 评论 -
第六章 Web开发实战1——HTTP服务
此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索、用户登录、实时价格、实时库存、服务支持、广告语等这种非Web页面,而是在Web页面中异步加载的相关数据。这些服务有个特点即访问量巨大、逻辑比较单一;但是如实时库存逻辑其实是非常复杂的。在京东这些服务每天有几亿十几亿的访问量,比如实时库存服务曾经在没有任何IP限流、DDos防御的情况被刷到600多万/分钟的访问量,而且能轻松应对。支撑如转载 2017-07-03 21:09:14 · 679 阅读 · 0 评论 -
使用Nginx+Lua(OpenResty)开发高性能Web应用
在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而把Nginx作为一个Web容器使用的还不是那么广泛。Nginx的高性能是大家公认的,而Nginx开发主要是以C/C++模块的形式进行,整体学习和开发成本偏高;如果有一种简单的语言来实现Web应用的开发,那么Nginx绝对是把好的瑞士军刀;目前Nginx团队也开始意识到这个问题,开发了nginxSc转载 2017-07-03 20:53:09 · 558 阅读 · 0 评论 -
Nginx+Lua(OpenResty) HelloWorld
《使用Nginx+Lua(OpenResty)开发高性能Web应用》中已经介绍了使用Nginx+Lua(OpenResty)开发Web应用,但是没有具体代码示例。 本文将按照《使用Nginx+Lua(OpenResty)开发高性能Web应用》介绍的Web应用项目结构提供HelloWorld代码。 初始化准备1、安装OpenResty,下载地址:https://github.转载 2017-07-03 20:55:52 · 565 阅读 · 0 评论 -
第一章 安装OpenResty(Nginx+Lua)开发环境
首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒转载 2017-07-03 20:59:35 · 1369 阅读 · 0 评论 -
第二章 OpenResty(Nginx+Lua)开发入门
Nginx入门本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章:nginx启动、关闭、重启http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.htmlagentzh 的 Nginx 教程http://openresty.org/download/agentzh-nginx-tut转载 2017-07-03 21:00:49 · 511 阅读 · 0 评论 -
第三章 Redis/SSDB+Twemproxy安装与使用
目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redis协议,可以支持Redis客户端直接访问;而这些持久化存储大多数使用了如LevelDB、RocksD转载 2017-07-03 21:02:26 · 485 阅读 · 0 评论 -
第四章 Lua模块开发
在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发;而且模块化是高性能Lua应用的关键。使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每个Worker进程需要时会得到此模块的一个副本(Copy-On-Write),即模块可以认为是每Worker进程共享而不是每Nginx Server共享;另外注意之前我们使用init_by_lua中初转载 2017-07-03 21:03:34 · 297 阅读 · 0 评论 -
第五章 常用Lua开发库1-redis、mysql、http客户端
对于开发来说需要有好的生态开发库来辅助我们快速开发,而Lua中也有大多数我们需要的第三方开发库如Redis、Memcached、Mysql、Http客户端、JSON、模板引擎等。一些常见的Lua库可以在github上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。 Redis客户端lua-resty-redis是为基于转载 2017-07-03 21:05:23 · 588 阅读 · 0 评论 -
第五章 常用Lua开发库2-JSON库、编码转换、字符串处理
JSON库 在进行数据传输时JSON格式目前应用广泛,因此从Lua对象与JSON字符串之间相互转换是一个非常常见的功能;目前Lua也有几个JSON库,本人用过cjson、dkjson。其中cjson的语法严格(比如unicode \u0020\u7eaf),要求符合规范否则会解析失败(如\u002),而dkjson相对宽松,当然也可以通过修改cjson的源码来完成一些特殊要求。而在使用dk转载 2017-07-03 21:06:22 · 1763 阅读 · 0 评论 -
第五章 常用Lua开发库3-模板渲染
动态web网页开发是Web开发中一个常见的场景,比如像京东商品详情页,其页面逻辑是非常复杂的,需要使用模板技术来实现。而Lua中也有许多模板引擎,如目前我在使用的lua-resty-template,可以渲染很复杂的页面,借助LuaJIT其性能也是可以接受的。 如果学习过JavaEE中的servlet和JSP的话,应该知道JSP模板最终会被翻译成Servlet来执行;而lua-re转载 2017-07-03 21:07:49 · 324 阅读 · 0 评论 -
51CTO专访清无:Nginx_lua的应用及性能对比
对于Web高性能服务器上的选择,这个是很多人头痛的问题。对于Apache、lighttpd、Nginx都用他们优点,在什么情况下我们如何去选择适合自己的Web高性能服务器,如何去搭建一个适合自己的架构环境,这个是一个很麻烦的事情。接下来,在ADC 2012(Alibaba Developer Conference 2012)大会上,51CTO记者有幸采访到了一淘数据平台与产品部技术专家——清无转载 2017-07-12 14:05:46 · 904 阅读 · 0 评论