apisix 中的服务发现机制

apisix 中的服务发现机制

💡 原文中文,约4900字,阅读约需12分钟。
📝

内容提要

该文章介绍了基于服务发现的负载均衡的问题和解决方案。通过配置文件中的服务发现类型,加载对应的模块,在init_worker中调用对应模块的init_worker方法。以dns为例,实现了初始化和根据service_name获取可用节点的方法。在handle_upstream中,如果upstream中配置了service_name,则需要进行服务发现,并与之前的节点进行比较,如果不一致则更新节点。最后,通过pick_server方法选择节点进行负载均衡。文章还提到了基于控制面的服务发现解决方案。

🎯

关键要点

  • 文章介绍了基于服务发现的负载均衡的问题和解决方案。
  • 通过配置文件中的服务发现类型,加载对应的模块,在init_worker中调用对应模块的init_worker方法。
  • 以dns为例,实现了初始化和根据service_name获取可用节点的方法。
  • 在handle_upstream中,如果upstream中配置了service_name,则需要进行服务发现,并与之前的节点进行比较。
  • 如果节点不一致则更新节点,最后通过pick_server方法选择节点进行负载均衡。
  • 提到基于控制面的服务发现解决方案,通过订阅service_name的变更,获取服务发现的变更,写入到etcd。
➡️

继续阅读