一窺Spring Cloud Eureka
在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/
啟動客戶端後,重新整理服務端頁面,可以看到該客戶端服務已被服務端發現並註冊。
