# 获取Nacos上所有注册的服务名称

# 使用 DiscoveryClient 可以获取到注册到 Nacos 所有的服务信息

@RestController
@RequestMapping("/depart")
@AllArgsConstructor
public class DepartController {

    private final DiscoveryClient discoveryClient;

    @GetMapping("services")
    public  Map<String, Object> getAllServiceNames() {
        Map<String, Object> resMap = new HashMap<>();

        //获取注册中心所有服务名称
        List<String> services = discoveryClient.getServices();
        for (String service : services) {
            //获取指定微服务名称的所有微服务实例
            List<ServiceInstance> instances = discoveryClient.getInstances(service);
            for (ServiceInstance instance : instances) {
                resMap.put(service, instance);
            }
        }
        return resMap;
    }
}

获取到的内容

{
	"provider-8081": {
		"serviceId": "provider-8081",
		"instanceId": null,
		"host": "192.168.14.30",
		"port": 8081,
		"secure": false,
		"metadata": {
			"nacos.instanceId": null,
			"nacos.weight": "1.0",
			"nacos.cluster": "DEFAULT",
			"nacos.ephemeral": "true",
			"nacos.healthy": "true",
			"preserved.register.source": "SPRING_CLOUD"
		},
		"uri": "http://192.168.14.30:8081",
		"scheme": null
	},
	"consumer-8080": {
		"serviceId": "consumer-8080",
		"instanceId": null,
		"host": "192.168.14.30",
		"port": 8080,
		"secure": false,
		"metadata": {
			"nacos.instanceId": null,
			"nacos.weight": "1.0",
			"nacos.cluster": "DEFAULT",
			"nacos.ephemeral": "true",
			"nacos.healthy": "true",
			"preserved.register.source": "SPRING_CLOUD"
		},
		"uri": "http://192.168.14.30:8080",
		"scheme": null
	}
}