2017-04-08 48 views
1

基本問題,因此只是想確保我理解正確。Springboot Microservice已在Eureka註冊,但無法訪問

我創建了一個發現服務器:

@SpringBootApplication 
@EnableEurekaServer 
public class DisocveryServiceApplication { 

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

,並用它成功註冊微服務;如果我打本地主機:8761我可以看到我的發現服務已經找到了微服務。微服務運行良好,如果我打他們的指定端口。例如,我有一個叫creds,如果我打localhost:9000它會返回。但是,我的理解是,我現在應該能夠打localhost:8761/creds,它會顯示相同的輸出,但這不起作用。

我誤會了嗎?我應該嘗試什麼建議?

creds bootstrap.yml:

spring: 
    application: 
    name: creds 

creds application.yml 服務器: 端口:9000 尤里卡: 客戶: 的serviceUrl: defaultZone:http://localhost:8761/eureka/

發現application.yml

server: 
    port: ${PORT:8761} 

eureka: 
    client: 
    registerWithEureka: false 
    fetchRegistry: false 
    server: 
     waitTimeInMsWhenSyncEmpty: 0 

回答

1

另一@EnableEurekaClient註釋春季啓動web服務可以通過使用注入RestTemplatehttp://creds/...訪問您的信用Web服務,其中creds是在Eureka註冊。

如果您想從Web應用程序的外部訪問creds webservice,那麼您需要的是像Zuul http://github.com/Netflix/zuul這樣的代理。

0

只需將微服務註冊到Eureka服務器,就不會確保您可以訪問網關下的微服務。尤里卡服務器不是一個網關服務器,它只是一個服務註冊表。您可以認爲Eureka僅僅是一種更多的服務,可以保存羣集中所有其他服務的相關信息。除了向註冊的客戶提供信息之外,它不做任何其他事情。 您可能需要網關服務才能在Eureka服務器下路由您的請求。 Zuul Proxy使用其服務ID或配置的URL將請求發送到底層微服務的請求。

將此依賴關係添加到您的類路徑中。

dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-zuul</artifactId> 
    <version>1.0.4.RELEASE</version> 
</dependency> 

在屬性filezuul添加此配置:

routes: 
    serv1: 
     path: /serv1/** 
     serviceId: http://localhost:8080/serv1 
    serv2: 
     path: /serv2/** 
     serviceId: serv2 

這將創建一個動態路由器的路由你的要求適當的服務實例。這也爲您的服務提供服務器端負載均衡器