聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

  • 260 views阅读

    记一次有惊无险的丢包调试经历

    某个项目把服务器从 CentOS 操作系统从 5 升级到了 7(3.10.0-693),一切都很顺利,直到我在服务器上闲逛的时候,无意间发现了一个「大问题」:网卡 eth0 在 RX 上存在丢包(dropped)现象,丢得还很有规律,每一两秒丢一个包! w...

    分类:技术文章 时间:2020-05-04 01:37 我要评论(0个)

  • 243 views阅读

    记一次Redis连接池问题引发的RST

    某个项目,因为监控尚不完善,所以我时常会人肉查查状态,终于有一天发现了异常: watch -d -n1 ‘netstat -s | grep reset’ 如图所示,服务器发送了大量的 reset,在我 watch 的时候还在发,多...

    分类:技术文章 时间:2020-05-04 01:37 我要评论(0个)

  • 502 views阅读

    关于OpenResty里的ngx.on_abort

    关于 OpenResty 里的 ngx.on_abort,官方文档里是这样说明的: Registers a user Lua function as the callback which gets called automatically when the...

    分类:技术文章 时间:2020-04-13 14:35 我要评论(0个)

  • 542 views阅读

    如何在OpenResty里实现代码热更新

    所谓「代码热更新」,是指代码发生变化后,不用 reload 进程就能生效。当然,通过关闭 lua_code_cache 可以实现此目标,但那样的话性能无疑将大打折扣!实际上因为所有的 require 操作都是通过 package.loaded 来加载模块的...

    分类:技术文章 时间:2020-03-25 16:37 我要评论(0个)

  • 611 views阅读

    手把手教你用OpenResty里的FFI

    了解 OpenResty 的人应该知道,OpenResty 原本的 API 都是基于 C 实现的,不过在新版里都已经改成了基于 FFI 实现的,为什么这么做?因为 FFI 在效率上更有优势,除此以外,FFI 还有一个优点是可以很便利的和 C 交互,我们不妨...

    分类:技术文章 时间:2020-03-08 22:50 我要评论(0个)

  • 937 views阅读

    一个尾调用相关的诡异报错信息

    一个 OpenResty 的接口报错了,我查了一下日志,发现如下报错信息: bad argument #1 to ‘test’ (string expected, got userdata) 看上去这就是一道送分题啊:无非就是 te...

    分类:技术文章 时间:2020-03-04 00:17 我要评论(0个)

  • 1069 views阅读

    如何扩展一个OpenResty模块

    因为 Lua 本身并没有继承之类的语法,所以我们不能通过 OOP 的套路来扩展模块,不过实际上对于 Lua 来说,扩展一个模块有更简单的方法,下面我们以 lua-resty-string 模块中的 aes 加解密功能为例子来说明一下。 在 aes 加解密...

    分类:技术文章 时间:2020-02-19 15:05 我要评论(0个)

  • 418 views阅读

    OpenResty与模块

    Lua 中没有常见面向对象语言中所谓类的概念,取而代之使用模块来组织管理代码。关于模块的基础知识大家可以参考「OpenResty 最佳实战」,本文聊点别的。 如何实现一个模块呢?假设我们要实现一个不太安全的房奴模块(houseslave.lua): lo...

    分类:技术文章 时间:2020-02-09 22:00 我要评论(0个)

  • 518 views阅读

    使用Fiddler把请求从HTTPS改成HTTP

    为什么我要把请求从 HTTPS 改成 HTTP?这是因为生产环境是 HTTPS 的,而测试环境却是 HTTP 的,我要在测试环境测试应用,所以需要把请求从 HTTPS 改成 HTTP。为什么我不在测试环境部署一套 HTTPS 证书?这是因为 HTTPS 证...

    分类:技术文章 时间:2020-02-09 22:00 我要评论(0个)

  • 495 views阅读

    被忽视的time命令

    如果要选 Linux 下最容易被忽视的命令,time 应该算一个。简单来说,它是一个用来计算命令运行时间的工具,之所以说它容易被忽视,一方面很多人根本不知道 time 的存在,而是习惯在命令启动前后记录两个时间戳,然后手动计算命令运行时间;另一方面很多人虽...

    分类:技术文章 时间:2020-02-09 22:00 我要评论(0个)

  • 549 views阅读

    如何使用PHP解析XML大文件

    如果使用 PHP 解析 XML 的话,那么常见的选择有如下几种:DOM、SimpleXML、XMLReader。如果要解析 XML 大文件的话,那么首先要排除的是 DOM,因为使用 DOM 的话,需要把整个文件全部加载才能解析,效率堪忧,相比较而言,Sim...

    分类:技术文章 时间:2020-02-09 22:00 我要评论(0个)

  • 578 views阅读

    关于 Cosocket 的 socket busy 报错

    关于 OpenResty 的 cosocket,文档里有如下一段描述: the cosocket object here is full-duplex, that is, a reader “light thread” and a ...

    分类:技术文章 时间:2020-02-09 22:00 我要评论(0个)