Cloud Foundry:Eureka Server作为用户提供的服务和添加服务

时间:2017-11-13 09:13:45

标签: cloudfoundry

我们组织中的云代工厂没有安装Spring Cloud服务。我创建了一个Eureka Server并将其部署在Cloud代工厂中,并且能够看到Eureka主页

我创建了一个用户提供服务,并使用此处提供的步骤绑定应用程序(https://github.com/making/cf-eureka-server)!

由于没有Spring CLoud

,因此我给出了以下依赖项
<dependency>
        <groupId>io.pivotal.spring.cloud</groupId>
         <artifactId>spring-cloud-services-starter-service-registry</artifactId>
         <version>1.5.0.RELEASE</version>
    </dependency>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

但是我在CF日志中收到以下错误

2017-11-13T14:39:05.238+05:30 [APP/PROC/WEB/0] [OUT] at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173) ~[jersey-apache-client4-1.19.1.jar!/:1.19.1]
2017-11-13T14:39:05.238+05:30 [APP/PROC/WEB/0] [OUT] ... 30 common frames omitted
2017-11-13T14:39:05.238+05:30 [APP/PROC/WEB/0] [OUT] 2017-Nov-13 09:09:05.237 WARN [DiscoveryClient-HeartbeatExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient - Request execution failed with message: java.net.ConnectException: Connection refused (Connection refused)
2017-11-13T14:39:05.238+05:30 [APP/PROC/WEB/0] [OUT] 2017-Nov-13 09:09:05.237 WARN [DiscoveryClient-CacheRefreshExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient - Request execution failed with message: java.net.ConnectException: Connection refused (Connection refused)
2017-11-13T14:39:05.238+05:30 [APP/PROC/WEB/0] [OUT] 2017-Nov-13 09:09:05.237 ERROR [DiscoveryClient-HeartbeatExecutor-0] c.n.d.DiscoveryClient - DiscoveryClient_C2M-LAUNCH-SERVICE/app-launch-service.apps.np.sdppcf.com:d2c76a2f-f2c4-45f9-7e3b-f807 - was unable to send heartbeat!
2017-11-13T14:39:05.238+05:30 [APP/PROC/WEB/0] [OUT] com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

该应用程序是Spring启动应用程序,我使用@EnableDiscoveryClient启用了Discovery。由于这个错误,我无法在Eureka看到服务。

是否可以在Cloud Foundry中安装Spring Cloud Services并使用假装客户端等创建Eureka服务?任何方向都会有所帮助。

1 个答案:

答案 0 :(得分:0)

spring-cloud-services-starter-*客户端库的开发与Spring Cloud Services部署和保护Eureka等Spring Cloud应用程序的方式相匹配。除非您实现与SCS相同的安全性和其他配置,否则这些Spring Cloud Services库不太可能与您自己编写的Eureka服务一起使用。

您应该使用io.pivotal.spring.cloud:spring-cloud-services-starter-service-registry并使用org.springframework.cloud:spring-cloud-starter-eurekaapplication.properties中的属性配置Eureka,而不是使用application.yml。您可以将适当的属性设置为从用户提供的服务实例解析的值,如making's example from the Github repo所示:

eureka.client.service-url.defaultZone=${vcap.services.eureka-service.credentials.uri:http://localhost:8761}/eureka/