我现在正在考虑如何将spring cloud与nodejs结合起来。 所以我想使用nodeJS作为中间层,它为前端angularjs应用程序提供api,但是一旦nodeJS获得api请求,它将触发其他http请求后端spring api。 我注意到spring cloud提供了很多非常好的功能,比如服务发现,配置服务器,但这些都用于spring本身。假设我如何在nodeJS中加载配置服务器结果,如果可以通过json解析轻松完成,我如何使用NodeJS的服务发现? 在春季项目中,我可以使用:
InstanceInfo instance = discoveryClient.getNextServerFromEureka("spirent", false);
String url = instance.getHomePageUrl();
但如果我使用nodeJS,nodeJS如何从eureka服务中轻松找到下一个服务实例?
希望听取您的意见和建议。
谢
基于这个建议,我添加了
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-sidecar</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>
到我当前的Eureka服务器POM,然后我在mainApplication中有这个:
@SpringBootApplication
@EnableEurekaServer
@EnableSidecar
public class SpringCloudEurekaServerApplication {
public static void main(String[] args) throws IOException {
System.err.println(new ClassPathResource("static/eureka/css/wro.css").getURL());
SpringApplication.run(SpringCloudEurekaServerApplication.class, args);
}
}
Eureka服务器上的Application.yml和bootstrap.yml与以前相同。
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
waitTimeInMsWhenSyncEmpty: 0
和bootstrap.yml:
spring:
application:
name: eureka
cloud:
config:
uri: ${CONFIG_SERVER_URL:http://localhost:8888}
现在,Eureka客户仍然可以注册此Eureka服务器,但是当我访问:http://localhost:8761/hosts/mysevice时,我的回复是空的。
所以我的问题是:sideCar可以自动找出在Eureka服务器上注册的所有服务吗?
答案 0 :(得分:3)
Spring Cloud Netflix Sidecar是这样做的方法。文件are here。你可以做以下两件事之一:
http://localhost:<sidecarport>/<servicename>
http://localhost:<sidecarport>/hosts/<servicename>