0

我有我的旧版弹簧应用程序(不是弹簧启动)。

现在我已经移动了一些我认为可以作为服务单独工作的代码,我能够干净地移动代码并能够作为单独的服务(弹簧启动应用程序)运行。

现在我想发现我的服务并想从遗留代码中调用,我添加了一个NetFlix-Eureka依赖项,但它正在下载我不想要的 spring-boot 依赖项。

如何在遗留应用程序中发现我的服务并调用其 APIS

4

1 回答 1

1

我从你的问题中假设 -

  • 你有 Eureka 服务器正在运行
  • 您的新 Spring Boot 微服务正在连接到 eureka 服务器
  • 您正在询问如何将您的遗留应用程序与 Eureka 服务器连接,因为之后您可以发现并调用新微服务的 API

如果那是正确的。要连接您的旧应用程序,您可以执行以下配置。

创建一个类,比如 CustomEurekaClient。

public class CustomEurekaClient {

private static ApplicationInfoManager appaInfoManager;
private static EurekaClient eurekaClient;

@Autowired
private WebAppInstanceConfig webAppInstanceConfig;
@Autowired
private EurekaClientConfig eurekaClientConfig;

private ApplicationInfoManager initializeApplicationInfoManager(EurekaInstanceConfig instanceConfig) {
    InstanceInfo instanceInfo = new EurekaConfigBasedInstanceInfoProvider(instanceConfig).get();
    return new ApplicationInfoManager(instanceConfig, instanceInfo);
}

private EurekaClient initializeEurekaClient(ApplicationInfoManager applicationInfoManager,                                                EurekaClientConfig clientConfig) {
    eurekaClient = new DiscoveryClient(applicationInfoManager, eurekaClient); //use this eureka client while de
    // registering service
    return eurekaClient;
}

@PostConstruct
public void runRegistration() {
    ApplicationInfoManager applicationInfoManager =
            initializeApplicationInfoManager(webAppInstanceConfig);
    initializeEurekaClient(applicationInfoManager, eurekaClientConfig);
    applicationInfoManager.setInstanceStatus(InstanceInfo.InstanceStatus.UP);
}}

EurekaClientConfig 类-

class EurekaClientConfig extends DefaultEurekaClientConfig {
//minimum change needed override
@Override
public List<String> getEurekaServerServiceUrls(String myZone) {
    return Arrays.asList(YOUR_COMMA_SEPRATED_EUREKA_SERVER_URL);
}}

WebAppInstanceConfig 类-

class WebAppInstanceConfig extends MyDataCenterInstanceConfig {
// TODO override all the methods of EurekaInstanceConfig, which you need like serviceUrl...interface and provide respective values

}

在 CustomEurekaClient 的 postConstruct 中,我们将服务注册到 Eureka 服务器。将这两个服务都注册到 Eureka 后,您就可以访问 API。

于 2019-07-23T14:54:31.493 回答