Изменить номер порта на ленте netflix - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть две услуги. Один работает на порту 8001 и зарегистрирован на сервере eureka, другой работает на порту 8002 и не существует на eureka. Я хочу изменить порт 8001 на 8002 в моем локальном ленточном клиенте. Я создал

public class LocalProxy <T extends DiscoveryEnabledServer> implements ServerListFilter<T> 

с методом

public List<T> getFilteredListOfServers(List<T> servers)

Но я не знаю, как изменить порт. DiscoveryEnabledServer.setPort не работает.

1 Ответ

0 голосов
/ 23 апреля 2020

Ужасно, но у меня это работает.

private void addProxyRoute(List<T> servers) {
    DiscoveryEnabledServer service = findFirst(servers,
            s -> "service1".equalsIgnoreCase(s.getInstanceInfo().getAppName()));
    if (service == null) return;
    IClientConfig clientConfig = new DefaultClientConfigImpl();
    DomainExtractingServerList list =
            new DomainExtractingServerList(createServer(service.getInstanceInfo()), clientConfig, true);
    servers.addAll((Collection<? extends T>) list.getUpdatedListOfServers());
    servers.remove(service);
}

private StaticServerList createServer(InstanceInfo app) {
    DiscoveryEnabledServer server = new DiscoveryEnabledServer(InstanceInfo.Builder.newBuilder()
            .setAppName("service1")
            .setPort(8002)
            .setHostName(app.getHostName())
            .setMetadata(new HashMap<>())
            .build(), false, true);
    server.setAlive(true);
    server.setReadyToServe(true);
    return new StaticServerList(server);
}
...