我们组织中的云代工厂没有安装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服务?任何方向都会有所帮助。
答案 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-eureka
或application.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/