当前位置: 首页 > 知识库问答 >
问题:

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

丌官星渊
2023-03-14

我已经为路由设置了Zuul,为服务发现设置了Eureka,效果很好。在设置Eureka之前,我使用了服务器。address=127.0.0.1将我的实际服务绑定到localhost,以便只能从Api网关内访问它们。

结合Zuul和Eureka时,服务器。address=127.0.0.1不再工作。我无法从网络内部或外部访问实际的RESTendpoint。

应用my Eureka服务发现的属性:

spring.application.name=service-discovery
server.port=8761
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false

应用my Zuul API网关的属性:

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服务的属性:

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/

当我移除服务器时。address=127.0.0.1从REST服务的属性文件中,我当然可以访问资源,但也可以不使用localhost,这不是我想要的。

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

共有1个答案

赵珂
2023-03-14

eureka注册实际的微服务。例子hostname=localhosteureka。例子到Eureka服务器的ip地址=127.0.0.1,再加上微服务到本地主机的绑定(server.address=127.0.0.1)完成了这项工作。

这些是应用程序。属性文件:

应用my Eureka服务发现的属性:

spring.application.name=service-discovery
server.port=8761
server.address=127.0.0.1
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false

应用my Zuul API网关的属性:

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服务的属性:

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

“library”微服务现在只能从localhost获得,但仍然在Eureka和Zuul API网关后面注册。

 类似资料:
  • 我只有很少的spring boot微服务,它们是通过云环境部署到JBoss的。这些引导服务是在Eureka服务器中注册自己的Eureka客户端。下面是一个例子: 它用user-regn-service-app Eureka主页的名称向Eureka注册应用程序 wildfly服务器在8080处运行,而user-regn-service-app部署在上下文路径/user-regn-service-ap

  • 我正在使用Lagom开发几个微服务。每个endpoint都公开一组RESTendpoint。我看到的所有默认实现都绑定到localhost。如何将特定服务绑定到不同的主机?

  • 我正在尝试建立一个基于Spring功能的简单微服务架构。我有3个简单的微服务作为起点:1配置服务器(Spring cloud config)2发现服务器(eureka Server)3网关Zuul 我配置了这些服务,以便发现服务器存储所有的.properties文件,它将自己注册到发现服务器,以便所有其他服务检索.properties文件,而不是通过静态url而是通过eureka服务器访问发现。

  • 我有一个相当简单的Spring CloudNetflix设置。我们使用Zuul作为反向代理,Eureka用于服务发现和注册。我们有我们正在慢慢窒息的遗留服务。我们有许多简单的服务,其endpoint配置如下: 因此,现在当每个服务都在eureka注册并随后向Zuul添加路由时,zuul终结点如下所示: 我想阻止Zuul将前缀从eureka服务的路由URI中剥离,以便我的Zuulendpoint如下

  • 我创建了两个java spring boot微服务,它们是1)生产者2)消费者,我使用spring eureka服务器进行服务注册和发现。它工作得很好。那Netflix Zuul有什么用呢。

  • 我们有三个服务器。因此,我们有两个服务器,每个运行一个尤里卡,他们也运行微服务。 我们有第三个服务器运行metrics和spring boot Admin。 Out Eureka配置基本上是: 2)这种配置是否正确和健壮?我的想法是,如果一个尤里卡或服务器宕机,另一个将取代它的位置。