前言 在开发十万博客系统的的过程中,前面主要分享了爬虫、缓存穿透以及文章阅读量计数等等。爬虫的目的就是解决十万+问题;缓存穿透是为了保护后端数据库查询服务;计数服务解决了接近真实阅读数以及数据库服务的压力。 架构图 限流 就拿十万博客来说,如果存在热点文章,可能会有数十万级别的并发用户参与阅读。如果 ...
分类:
编程语言 时间:
2019-09-03 09:58:49
阅读次数:
195
前面我们讨论系统调用的时候结论是耗时200ns 15us不等。不过我今天说的我的这个遭遇可能会让你进一步认识系统调用的真正开销。在本节里你会看到一个耗时2.5ms的connect系统调用,注意是毫秒,相当于2500us! 问题描述 当时是我的一个线上云控接口,是nginx+lua写的。正常情况下,单 ...
分类:
其他好文 时间:
2019-09-03 09:45:24
阅读次数:
309
实验目的 通过nginx实现反向代理的功能,类似apache反向代理和haproxy反向代理 工作中用nginx做反向代理和负载均衡的也越来越多了 有些公司从web服务器到反向代理,都使用nginx。nginx在1.9版本加入了tcp的反向代理功能甚至安全策略:nginx+lua 完全可以搞定。 打 ...
分类:
其他好文 时间:
2019-09-02 17:19:26
阅读次数:
138
ngx_lua模块的原理: 1、每个worker(工作进程)创建一个Lua VM,worker内所有协程共享VM;2、将Nginx I/O原语封装后注入 Lua VM,允许Lua代码直接访问;3、每个外部请求都由一个Lua协程处理,协程之间数据隔离;4、Lua代码调用I/O操作等异步接口时,会挂起当 ...
分类:
其他好文 时间:
2019-09-02 12:12:31
阅读次数:
80
Linux-Windows 端口转发 https://www.cnblogs.com/operationhome/p/11284559.html 之前自己学习过 netsh 也曾经用过frp 这次学习一下表 rinetd 感觉工具有很多 需要一直保持学习的心态. 在实际的生产环境中,我们为了安全性, ...
openresty开发系列24--openresty中lua的引入及使用openresty 引入 lua一)openresty中nginx引入lua方式 1)xxx_by_lua >字符串编写方式 2) xxx_by_lua_block >代码块方式 3) xxx_by_lua_file >直接引用 ...
分类:
其他好文 时间:
2019-08-30 13:37:00
阅读次数:
65
openresty开发系列21--lua的模块从lua5.1开始,Lua 加入了标准的模块管理机制,Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行。一)模块定义模块的文件名 ...
分类:
其他好文 时间:
2019-08-30 11:58:06
阅读次数:
84
openresty开发系列20--lua的时间操作在 Lua 中,函数 time、date 和 difftime 提供了所有的日期和时间功能。在 OpenResty 的世界里,不推荐使用这里的标准时间函数,因为这些函数通常会引发不止一个昂贵的系统调用,同时无法为 LuaJIT JIT 编译,对性能造 ...
分类:
其他好文 时间:
2019-08-30 11:38:34
阅读次数:
109
openresty开发系列16--lua中的控制结构if-else/repeat/for/while 一)条件 - 控制结构 if-else if-else 是我们熟知的一种控制结构。Lua 跟其他语言一样,提供了 if-else 的控制结构。 1)单个 if 分支 型 if 条件 then --b... ...
分类:
其他好文 时间:
2019-08-29 16:26:59
阅读次数:
93
openresty开发系列13--lua基础语法2常用数据类型介绍一)boolean(布尔)布尔类型,可选值 true/false;Lua 中 nil 和 false 为"假",其它所有值均为"真"。比如 0 和空字符串就是"真";local a = truelocal b = 0local c = ...
分类:
其他好文 时间:
2019-08-29 16:11:02
阅读次数:
94