1. 程式人生 > >一窺Spring Cloud Eureka

一窺Spring Cloud Eureka

ann rop 程序 客戶 prope png fig efault ica

在Spring Cloud中Eureka負責服務發現功能。服務發現需要解決如何找到服務提供者在網絡中位置的問題。

服務端

在Spring Tool Suite的文件菜單中,點擊新建Spring Starter Project。
技術分享圖片

然後在入口方法加上@EnableEurekaServer標記。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class SpringcloudEurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudEurekaServerApplication.class, args);
    }
}

接著,在application.properties文件中增加如下配置:

server.port=8765
eureka.instance.hostname: localhost
eureka.client.registerWithEureka: false
eureka.client.fetchRegistry: false
eureka.client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

如果能夠順利啟動此程序的話,可以在http://localhost:8765地址中看到下列頁面:
技術分享圖片

客戶端

新建另一個Spring Starter Project。
技術分享圖片

在入口方法加上@EnableDiscoveryClient標記。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@EnableDiscoveryClient
@RestController
@SpringBootApplication
public class SpringcloudEurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudEurekaClientApplication.class, args);
    }
    
    @RequestMapping("/hello")
    public String home() {
        return "Hello world";
    }
}

配置文件裏添加服務端的地址

server.port=8760

spring.application.name: springcloud-eureka-client
eureka.client.serviceUrl.defaultZone: http://localhost:8765/eureka/

啟動客戶端後,刷新服務端頁面,可以看到該客戶端服務已被服務端發現並註冊。
技術分享圖片

一窺Spring Cloud Eureka