1. 程式人生 > 其它 >SpringCloud中整合Eureka時通過Discovery實現服務發現

SpringCloud中整合Eureka時通過Discovery實現服務發現

場景

SpringCloud中整合Eureka實現服務註冊(單機Eureka構建):

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/124688609

SpringCloud中整合Eureka實現叢集部署服務註冊與服務提供者:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/124710576

在上面實現服務註冊單機與叢集的基礎上,怎樣去進行服務發現。

注:

部落格:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程式猿
獲取程式設計相關電子書、教程推送與免費下載。

實現

1、以服務提供者自己發現自己為例,找到服務提供者這裡是8001的Controller

注入DiscoveryClient

    @Resource
    private DiscoveryClient discoveryClient;

然後新建一個get介面

    @GetMapping(value = "/payment/discovery")
    public Object discovery()
    {
        List<String> services = discoveryClient.getServices();
        for (String element : services) {
            log.info(
"*****element: "+element); } List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE"); for (ServiceInstance instance : instances) { log.info(instance.getServiceId()+"\t"+instance.getHost()+"\t"+instance.getPort()+"\t"+instance.getUri()); }
return this.discoveryClient; }

首先呼叫getServices獲取所有的服務,然後還可以通過指定的服務別名來獲取詳細的主機的詳細資訊。

2、呼叫介面,檢視介面返回資訊

然後檢視8001的控制檯可以看到詳細的輸出