基本问题所以只是想确保我理解正确 .
我创建了一个发现服务器:
@SpringBootApplication
@EnableEurekaServer
public class DisocveryServiceApplication {
public static void main(String[] args) {
SpringApplication.run(DisocveryServiceApplication.class, args);
}
并成功注册微服务;如果我点击localhost:8761我可以看到我的发现服务找到了微服务 . 如果我在他们指定的端口上击中它们,微服务运行正常 . 例如,我有一个名为creds,如果我点击localhost:9000则返回 . 但是,我的理解是我现在应该能够命中localhost:8761 / creds并且它将显示相同的输出,但这不起作用 .
我误会了吗?关于我应该尝试什么的任何建议?
creds bootstrap.yml:
spring:
application:
name: creds
creds application.yml服务器:port:9000 eureka:client:serviceUrl:defaultZone:http://localhost:8761/eureka/
发现application.yml
server:
port: ${PORT:8761}
eureka:
client:
registerWithEureka: false
fetchRegistry: false
server:
waitTimeInMsWhenSyncEmpty: 0
2 回答
另一个
@EnableEurekaClient
带注释的Spring启动Web服务可以通过使用RestTemplate
注入RestTemplate
来访问您的creds webservice,其中creds
是在Eureka注册的spring.application.name
.如果您想从Web应用程序外部访问creds webservice,那么您想要的是像Zuul http://github.com/Netflix/zuul这样的代理 .
只需向Eureka服务器注册微服务,就不会确保您可以访问网关下的微服务 . Eureka Server不是网关服务器,它只是一个服务注册表 . 您可以将Eureka视为另一项服务,其中包含有关群集中所有其他服务的信息 . 除了向已注册的客户获取信息之外,它不会做任何其他事情 . 您可能需要Gateway服务才能在Eureka Server下路由您的请求 . Zuul代理使用其服务ID或配置的URL将发送到下层微服务的请求路由 .
在类路径中添加此依赖项 .
在您的属性filezuul中添加此配置:
这将创建一个动态路由器,将您的请求路由到适当的服务实例 . 这还为您的服务提供了服务器端负载 balancer 器