使用到的組件如下
Cloud Config | Cloud Discovery |
---|---|
Config Client | Eureka Server |
新增 bootstrap.properties 然後把不需要的 application.properties 刪除,因為組態檔我們使用 Config Server 提供的
bootstrap.properties
spring.application.name=eureka-service
spring.cloud.config.uri=http://localhost:8888
新增 eureka-service.properties 到 Config-Server 設定檔路徑底下
eureka-service.properties
server.port=${PORT:8761}
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
#eureka.client.enabled=false
eureka.instance.hostname=localhost
#eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
其實 hostname 理論上是可以不用加的,但是會出現以下的錯誤訊息,不過網路上是說這沒關係是沒有Client的錯誤
log
2015-11-09 14:53:30.685 ERROR 21880 --- [trace=,span=] [nio-8761-exec-1] c.n.eureka.resources.StatusResource : Could not determine if the replica is available
java.lang.NullPointerException: null
at com.netflix.eureka.resources.StatusResource.isReplicaAvailable(StatusResource.java:87)
at com.netflix.eureka.resources.StatusResource.getStatusInfo(StatusResource.java:67)
at org.springframework.cloud.netflix.eureka.server.EurekaController.status(EurekaController.java:68)
主程式部份
EurekaServerApplication.java
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
起動後就可以從 http://localhost:8761/ 觀察到目前有哪些服務