代码之家  ›  专栏  ›  技术社区  ›  Mr.DevEng

云部署中的Spring云微服务配置

  •  0
  • Mr.DevEng  · 技术社区  · 7 年前

    我在本地系统中使用Eureka服务器和Zuul Spring云工具创建了一个示例Spring云微服务。它运行正常。我在eureka服务器项目中注册了我的微服务作为客户端。还将我的Zuul注册为Eureka服务器的客户端。

    server.port=8071
    eureka:  
    numberRegistrySyncRetries: 1
    instance:
    hostname: localhost
    client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://localhost:8071/eureka/
    server:
    enable-self-preservation: true
    

    下面的代码是我的微服务应用程序。属性文件内容,

    eureka.client.serviceUrl.defaultZone=http://localhost:8071/eureka/
    eureka.client.register-with-eureka=true
    eureka.client.fetch-registry=true
    

    还有我的zuul申请表。属性代码为,

    eureka.client.serviceUrl.defaultZone=http://localhost:8071/eureka/
    eureka.client.register-with-eureka=true
    eureka.client.fetch-registry=true
    spring.application.name=eurekaZuulClient
    ribbon.eureka.enabled=true
    zuul:
     routes:
      espace-service:
       path: /espace/**
       stripPrefix: true
       serviceId: espace-service
       server.port=8090
    

    在这里,我的疑问是,当我们将这个应用程序部署到云中时,我们需要在应用程序中做出什么改变。属性?,因为我们不知道服务器。端口和云上的“eureka.client.serviceUrl.defaultZone”。这里我只运行localhost。

    那么,我们需要如何在配置中遵循云部署过程呢?我是Spring Cloud的初学者,在这些配置中我有很多困惑。

    1 回复  |  直到 5 年前
        1
  •  1
  •   madhu pathy    7 年前

    您可以对部署eureka的实例的IP进行硬编码,并用概要文件名称将其分隔开来。

    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    ---
    eureka:
      client:
        serviceUrl:
          defaultZone: http://172.0.0.1:8761/eureka/
    

    分隔符下的配置位用于应用程序在cloud Spring配置文件下运行时。使用SPRING\u PROFILES\u活动环境变量可以轻松设置配置文件。您可以在清单中配置Cloud Foundry环境变量。yml或者,在Cloud Foundry Lattice上,您的Docker文件。

    如果主机名不能由Java确定,则IP地址将发送到Eureka。唯一明确的设置主机名的方法是使用eureka。例子主机名。您可以在运行时使用环境变量(例如eureka)设置主机名。例子主机名=${HOST\u NAME}

    eureka:
      instance:
        serviceUrl:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/