如何配置 Eureka Client 和 Service 属性?

问题描述 投票:0回答:2

我正在尝试使用 Eureka 注册我的 Java 服务 - 但没有成功。我有一个使用 Spark-Java 框架的现有代码库,因此“仅添加 2 行 Spring 注释,瞧!”不幸的是,这些例子对我没有帮助。

阅读了Eureka Configuration文档,创建了一个eureka-conf目录,并在eureka-conf中放入了以下两个文件:

  • eureka-client.properties
  • eureka-service.properties

我使用

export CLASSPATH=.:${CLASSPATH}:${EUREKA_CONF}/eureka-client.properties:${EUREKA_CONF}/eureka-service.properties

将 eureka_conf 路径添加到我的 $CLASSPATH 变量中

我从here复制粘贴了属性文件的内容。所以,他们看起来像这样:

#eureka-client.properties
eureka.registration.enabled=false
eureka.preferSameZone=true
eureka.shouldUseDns=false
eureka.serviceUrl.default=http://localhost:8080/eureka/v2/
eureka.decoderName=JacksonJson

#eureka-service.properties
eureka.region=us-west-1
eureka.name=qb-acm
eureka.vipAddress=mysampleservice.mydomain.net
eureka.port=8001
eureka.preferSameZone=true
eureka.shouldUseDns=false
eureka.serviceUrl.default=http://localhost:8080/eureka/v2/

你可以看到,我更改了 eureka.name 和 eureka.region 以在日志中查看是否找到了属性。他们没有找到。

当我开始服务时,我看到

com.netflix.discovery.internal.util.Archaius1Utils
抛出以下警告:

Cannot find the properties specified : eureka-client. This may be okay if there are other environment specific properties or the configuration is installed with a different mechanism.

接下来是:

INFO com.netflix.discovery.DiscoveryClient - Initializing Eureka in region us-east-1

我已经创建了一个示例 Eureka 服务器和客户端(使用 Spring)只是为了做一个示例,并且注册了 Spring 客户端。现在,我正在尝试让我的非 Spring Java 服务向本地 Eureka 服务器注册。我的最终目标是设置此服务以注册心跳并将心跳发送到托管在 Pivotal 上的远程 Eureka 服务器。

其他错误可能对读者有用:

[main] ERROR com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver - Cannot resolve to any endpoints from provided configuration: {defaultZone=[]}
[main] ERROR com.netflix.discovery.shared.transport.EurekaHttpClients - Initial resolution of Eureka server endpoints failed. Check ConfigClusterResolver logs for more info

所以,我的问题是:

  1. 设置属性我做错了什么?

  2. 我在很多例子中看到他们有一个

    application.yml
    manifest.yml
    文件。 .yaml 文件是什么 在 Eureka 配置中?它是财产的替代品吗 文件?

edit:我发现this answer解释了yaml文件。 Application.yml 由 Spring boot 使用,Manifest.yml 由 cloud foundry CLI 使用。

  1. 我的本地环境和 Pivotal 上的 eureka.vipAddress 应该是什么?

**编辑:经过反复试验,我发现在本地设置为 http://localhost:yourport 对于 PCF,它应该是应用程序名称。

localhost
service-name
都不对应于物理网络接口。好吧,终于知道什么是虚拟ip了**

如果需要更多信息,请告诉我。在此先感谢您的帮助。

java netflix-eureka spark-java
2个回答
0
投票

看来,你的配置文件在启动过程中找不到。 eureka 配置文件必须在类路径中。有时它们没有打包到 jar 文件中。确保将这些文件放在你的 jar 中

(try jar xf <your-jar-file>
分析你的罐子的内容。

你在用 maven 构建吗?然后在 pom 文件的构建部分添加一个资源/包含块,以确保包含配置文件。

eureka 的一些属性可以在 application.yml 文件中设置,除了您编写配置的格式外,该文件与 applicaiton.properties 相同。我不确定是否有与 yaml 等效的 eureka-client.properties。首先让 *.properties 运行,然后尝试它是否理解 yaml。


0
投票

eureka-client.properties 和 eureka-service.properties 在类路径中对我有用。我已将这些文件放在我的 Web 应用程序的资源目录中。 这些文件被 Eureka Client 和 Eureka Server 使用。

application.yml 由 Spring Cloud 实现使用,是与 Eureka 注册表或任何其他注册表一起工作的单独方式。

vipAddress 是您的应用程序将在 Eureka 中注册的名称。

注册自己的服务在eureka-client.properties中会有eureka.registration.enabled=true。似乎所有服务注册属性都是从该文件中获取的。 仅进行发现的服务将在其 eureka-client.properties 中包含 eureka.registration.enabled=false

以下链接提供了一个进行注册和发现的示例应用程序:
https://github.com/Netflix/eureka/tree/master/eureka-examples

请注意,这里涉及三个组件
1)尤里卡服务器
2) 服务(使用 Eureka 客户端)——进行注册
3)客户端(使用 Eureka 客户端)- 进行发现

上面的示例讨论了 2 和 3。要启动 Eureka 服务,您可以通过以下链接,它会要求您构建 Eureka Server war 文件并将其放到 Tomcat 服务器上。
https://github.com/Netflix/eureka/wiki/Building-Eureka-Client-and-Server

为了进行测试,您可以使用其 REST 接口与 http 客户端(如 curl 或浏览器)直接查询 Eureka Server。
https://github.com/Netflix/eureka/wiki/Eureka-REST-operations

© www.soinside.com 2019 - 2024. All rights reserved.