💡
原文中文,约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。
➡️