Service Discovery Mechanism in APISIX
原文英文,约800词,阅读约需3分钟。发表于: 。基于 3.10.0 版本 机制 0. 入口 在 apisix 的ngx_tpl.lua中 init_worker_by_lua_block { apisix.http_init_worker() } apisix/init.lua local router = require("apisix.router") function _M.http_init_worker() ........
该文章介绍了基于服务发现的负载均衡的问题和解决方案。通过配置文件中的服务发现类型,加载对应的模块,在init_worker中调用对应模块的init_worker方法。以dns为例,实现了初始化和根据service_name获取可用节点的方法。在handle_upstream中,如果upstream中配置了service_name,则需要进行服务发现,并与之前的节点进行比较,如果不一致则更新节点。最后,通过pick_server方法选择节点进行负载均衡。文章还提到了基于控制面的服务发现解决方案。