title: 控制面服务发现 keywords:
本文档介绍了如何在 APISIX 控制面通过 Nacos 和 Zookeeper 实现服务发现。
Apache APISIX 在早期已经支持了数据面服务发现,现在 APISIX 也通过 APISIX-Seed 项目实现了控制面服务发现,下图为 APISIX-Seed 架构图。
图中的数字代表的具体信息如下:
:::note
引入 APISIX-Seed 后,如果注册中心的服务变化频繁,etcd 中的数据也会频繁变化。因此,需要在启动 etcd 时设置 --auto-compaction
选项,用来定期压缩历史记录,避免耗尽 etcd 存储空间。详细信息请参考 revisions。
:::
网络拓扑变得更简单
APISIX 不需要与每个注册中心保持网络连接,只需要关注 etcd 中的配置信息即可。这将大大简化网络拓扑。
上游服务总数据量变小
由于 registry
的特性,APISIX 可能会在 Worker 中存储全量的 registry
服务数据,例如 Consul_KV。通过引入 APISIX-Seed,APISIX 的每个进程将不需要额外缓存上游服务相关信息。
更容易管理
服务发现配置需要为每个 APISIX 实例配置一次。通过引入 APISIX-Seed,APISIX 将对服务注册中心的配置变化无感知。
目前已经支持了 ZooKeeper 和 Nacos,后续还将支持更多的服务注册中心,更多信息请参考:APISIX Seed。
如果你想启用控制面 ZooKeeper 服务发现,请参考:ZooKeeper 部署教程。
如果你想启用控制面 Nacos 服务发现,请参考:Nacos 部署教程。