-
Mac 安装VM虚拟机及网络配置
September 11, 2021
这篇文章主要介绍了如何在Mac上安装VM虚拟机和Centos虚拟机,并进行网络配置。首先,从VMware官网下载并安装VMware Fusion。然后,从Centos官网下载Centos镜像,并在VMware Fusion中创建Centos虚拟机。最后,进行虚拟机网络配置,包括选择网络模式,查看WIFI项,配置虚拟机的ifcfg-ens33文件,设置GATEWAY和DNS,最后重启network服务。 …
-
Kong - 自定义插件开发(四)
July 15, 2021
这篇文章主要介绍了如何使用Go语言开发自定义插件。首先,我们需要下载并安装go-pluginserver,然后在CentOS环境下安装C相关的编译环境。接着,我们可以下载官方的插件示例,并通过Go语言编写自己的插件。最后,我们需要配置相关的环境变量并启动Kong服务。文章还提供了Konga插件的示例图和相关参考链接。 …
-
Kong - 自定义插件开发(三)
July 14, 2021
这篇文章介绍了如何使用Docker启动Kong并加载自定义插件。详细介绍了Docker启动命令中的环境变量和挂载路径的配置。特别注意,如果出现ntt-auth plugin is in use but not enabled错误,需要检查插件路径和KONG_PLUGINS环境变量。 …
-
Kong - 自定义插件开发(二)
July 13, 2021
这篇文章主要介绍了如何在Kong中开发自定义插件。首先,它解释了Kong插件的生命周期,并展示了如何在Lua中实现base_plugin.lua接口的方法。然后,文章提供了一个NttAuthHandler插件的示例,包括access、init_worker和log阶段的实现。接着,文章介绍了如何定义插件的schema。最后,文章讨论了在Docker容器部署中如何使用lua_shared_dict共享内存,并提供了Kong Nginx模板的相关配置。 …
-
Kong - 自定义插件开发(一)
July 13, 2021
这篇文章主要介绍了如何开发Kong自定义插件。首先,将插件视为一组Lua模块,Kong会检测并加载遵循特定命名约定的插件模块。插件由两个强制性模块组成:handler.lua和schema.lua。一些插件可能需要更深入地集成到Kong中,例如在数据库中有自己的表,或在Admin API中公开端点等,这些都可以通过向插件添加新模块来完成。 …
-
限流算法实践
April 21, 2021
本文主要介绍了四种限流算法:固定窗口计数器算法、滑动窗口计数算法、漏桶算法、令牌桶算法,并通过Lua脚本和Redis实现了令牌桶算法。文章详细解释了如何使用Redis的SCRIPT LOAD和EVALSHA命令来执行限流逻辑,并通过返回值判断是否触发限流行为。最后,文章对四种算法进行了比较和总结,认为令牌桶算法是一种相对完美的限流算法,适用于大多数限流场景。 …
-
ngx_lua模块中使用lua_shared_dict共享内存变量
April 19, 2021
本文介绍了在ngx_lua模块中如何使用lua_shared_dict命令定义共享内存字典项对象,并通过ngx.shared.DICT接口获取这些对象。文章详细解释了相关语法和示例,包括如何设置和获取共享内存上的值。同时,还讨论了在Nginx重启和退出时,共享内存字典项的行为。 …
-
openresty 跑定时任务配置、ngx.timer.every接口使用
April 19, 2021
这篇文章主要介绍了如何在OpenResty中配置和使用定时任务。首先,文章解释了定时任务需要与worker绑定,通常默认绑定到worker_id=0,这样在Nginx进程中只执行一个timer。然后,文章提供了在nginx.conf中配置定时任务的具体方法。接着,文章介绍了如何使用ngx.timer.every接口,这是ngx提供的最新接口。最后,文章提供了一些相关的日志输出和错误处理方法。 …
-
too many open files 问题定位
March 17, 2021
这篇文章主要解决了"too many open files"问题的定位。首先,它列出了可能的问题原因,包括系统资源限制小,数据库打开文件限制小,以及程序代码问题。然后,文章详细介绍了如何使用ulimit命令查看和调整资源限制,特别是打开文件数的限制。最后,文章介绍了如何使用lsof命令查看打开文件数,包括查看某个进程打开文件数和查看当前系统打开文件数。 …
-
Gin pprof性能分析
December 28, 2020
这篇文章介绍了如何使用Gin pprof进行Go语言的性能分析。首先,通过导入github.com/DeanThompson/ginpprof包并使用ginpprof.Wrapper(router)将其集成到gin框架中。然后,通过命令行工具go tool pprof获取和分析程序的性能数据。文章还提供了如何使用top命令查看当前内存使用情况,并建议定期使用此命令以检测是否存在内存持续增长的情况。最后,文章提供了两个参考链接,供读者深入学习。 …