首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SpringBoot、Zuul和Eureka合并,但将服务绑定到本地主机

将SpringBoot、Zuul和Eureka合并,但将服务绑定到本地主机
EN

Stack Overflow用户
提问于 2018-03-16 15:45:56
回答 1查看 1.7K关注 0票数 0

我为路由设置了Zuul,为服务发现设置了Eureka,这很好。在设置Eureka之前,我使用server.address=127.0.0.1将实际服务绑定到localhost,以便只能在Api网关中访问它们。

当将Zuul和Eureka合并时,server.address=127.0.0.1不再起作用了。我不能访问我的实际休息端点,既不能从我的网络,也不能从外部。

我的尤里卡服务发现的application.properties:

代码语言:javascript
复制
spring.application.name=service-discovery
server.port=8761
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false

我的Zuul网关的application.properties:

代码语言:javascript
复制
spring.application.name=api-gateway
zuul.prefix=/api
server.port=8080

ribbon.eureka.enabled=true
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

zuul.routes.library.path=/library/**
zuul.routes.library.serviceId=library

我的实际REST服务的application.properties:

代码语言:javascript
复制
spring.application.name=library
server.servlet.context-path=/library
server.port=8090
server.address=127.0.0.1

ribbon.eureka.enabled=true
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

当我从REST服务的属性文件中删除server.address=127.0.0.1时,我当然可以访问资源--但也可以访问没有localhost的资源,这不是我想要的。

因此,我试图实现的是,我的小微服务只能从localhost内部访问(在请求通过Zuul网关之后)。此外,我希望使用Eureka来发现服务,并有机会提供第二个序列化实例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-19 10:58:54

使用eureka.instance.hostname=localhosteureka.instance.ip-address=127.0.0.1将实际的微服务注册到尤里卡服务器,再加上将微服务绑定到本地主机(server.address=127.0.0.1),就完成了这项工作。

这些是application.properties文件:

我的尤里卡服务发现的application.properties:

代码语言:javascript
复制
spring.application.name=service-discovery
server.port=8761
server.address=127.0.0.1
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false

我的Zuul网关的application.properties:

代码语言:javascript
复制
spring.application.name=api-gateway
zuul.prefix=/api
server.port=8080
ribbon.eureka.enabled=true
eureka.client.registerWithEureka=false
zuul.routes.library.path=/library/**
zuul.routes.library.serviceId=library
zuul.routes.library.stripPrefix=false

我的实际REST服务的application.properties:

代码语言:javascript
复制
spring.application.name=library
server.servlet.context-path=/library
server.port=8090
server.address=127.0.0.1
ribbon.eureka.enabled=true
eureka.client.registerWithEureka=true
eureka.instance.hostname=localhost
eureka.instance.ip-address=127.0.0.1

“库”微服务现在只在本地主机上提供,但仍在尤里卡注册,并在Zuul API网关之后注册。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49324723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档