01 2023 档案

摘要:背景 为网关提供健康检查功能时需要对节点发送http或者tcp探活请求。Openresty 提供cosocket来处理非阻塞IO。 实现 跟工程结合在一起,这里简单拼接数据结构 local function __default_check_alive(status) return status >= 阅读全文
posted @ 2023-01-29 14:48 zscbest 阅读(382) 评论(0) 推荐(0) 编辑
摘要:背景 在程序开发过程中有时会遇到事件流的问题,某一个结果会触发A、B、C等一系列动作。需要将各种事件注册给委托类(Delegate)。Delegate类会依次触发注册的函数,完成相应的动作。 实现原理 lua中可以使用元表和队列的形式进行实现 实现细节 delegate.lua local _M = 阅读全文
posted @ 2023-01-28 15:53 zscbest 阅读(469) 评论(0) 推荐(0) 编辑
摘要:背景 静态的nginx配置需要将负载均衡的服务节点信息都配置在配置文件中。现在微服务或云服务都会接入一些服务发现或者云控平台场景,经常需要更换节点,如果每次都要更新配置并且重启服务是无法接受的,所以需要网关提供动态扩展,实时更新自己负载均衡节点的能力,使用openresty网关需要使用lua扩展来实 阅读全文
posted @ 2023-01-19 15:20 zscbest 阅读(1087) 评论(0) 推荐(0) 编辑
摘要:背景 在go的工程中,有时init的顺序是至关重要的,本文写了一个小控制器去管理init的顺序,可以根据自己的要求设置不同的权重来实现加载顺序。 本文控制器主要实现两个功能,一是按照优先级加载包的引用,二是流程控制,主流程与异步流程存在顺序要求(实现类似sync.WaitGroup功能) 原理 优先 阅读全文
posted @ 2023-01-03 15:31 zscbest 阅读(114) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示