gpt4 book ai didi

java - 如何在客户端应用程序启动时从代码设置 Eureka URL

转载 作者:行者123 更新时间:2023-12-02 02:29:20 24 4
gpt4 key购买 nike

我们需要从启动代码中在客户端应用程序中设置 Eureka 服务器 URL,但似乎没有办法做到这一点。

我们有一种通过UDP多播广播发现网络上的Eureka服务器的机制。服务器将响应发送回客户端,其中包含有关运行 Eureka 服务器的 IP 地址和端口的信息。但我们不知道如何通过代码在 Eureka 客户端应用程序中设置此 URL。似乎设置 Eureka 服务器 URL 的唯一方法是 application.property 文件中的属性 eureka.client.serviceUrl.defaultZone

    // Server - start a new thread with UDP packet detection and reply mechanism
LocationService.listenAndReplyToEurekaClients(thisServerPort);

// Server - application start
SpringApplication.run(EurekaServerApplication.class, args);


// Client - send UDP packet and receive reply with Eureka server IP and port
Response response = LocationService.findEurekaServerAddress(5, 3, TimeUnit.SECONDS);

var hostProtocol = "http";

var eurekaUrl = new URL(
hostProtocol,
response.getEurekaAddress(),
response.getEurekaPort(),"").toString();

我们希望在客户端开始注册到 Eureka 服务器之前将此 eurekaURL 设置给客户端。

最佳答案

在这种情况下,我们可以做以下事情-

扩展EurekaClientConfigBean并覆盖getEurekaServerServiceUrls方法。方法返回一个字符串列表,它只不过是 eureka 实例的所有 URL 的列表。您需要在此处设置具有 IP 和端口的响应中的 URL。

稍后使用 - DiscoveryClient(ApplicationInfoManager applicationInfoManager, EurekaClientConfig config) 创建发现客户端。 (它肯定是一个 Bean)。

这应该有效。

您可以创建ApplicationInfoManager作为-

ApplicationInfoManager applicationInfoManager =
initializeApplicationInfoManager(webAppInstanceConfig);

WebAppInstanceConfig 所在位置 -

class WebAppInstanceConfig extends MyDataCenterInstanceConfig {// Override all the needed properties from MyDataCenterInstanceConfig}

关于java - 如何在客户端应用程序启动时从代码设置 Eureka URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57240211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com