核心方法
目前 nacos-coredn 插件与 nacos 服务端通信的API在 nacos2.x 版本被移除了。请教了导师后发现可以利用目前nacos-go-sdk中实现的nacos client和server通信,从nacos client获取数据转成对应的数据结构就可以,不需要api来进行数据传输。因此项目方案是参考Nacos-go-sdk与Nacos服务器的通信方式,在Nacos-coredns-plugin内导入Nacos-sdk-go相关功能,封装成新的grpc通信模块,实现与与Nacos服务器的通信。例如,通过nacos-go-sdk来调用GetAllServicesInfo、GetService等方法,就能获取所有服务或某个具体服务的信息(ip、port…),这些数据看可以覆盖旧api获取的数据,因此只需要对从nacos client获取数据转成对应coredns插件需要的数据结构即可。