如何在尤里卡服务器上为每个尤里卡客户端注册多个服务?

How to register more than one service per eureka client on eureka server?

我开始学习 Eureka API。我使用 spring 启动和相应的客户端创建了一个 Eureka 服务器。 首先,我创建了一个 Eureka 客户端并向服务器注册。客户端公开了一个没有路径的获取服务

@GetMapping("/")

这很好用。一旦我使用如下所示的 DiscoveryClient 获得服务器实例,我就可以点击服务

List<ServiceInstance> list = client.getInstances(service);
    if (list != null && list.size() > 0) {
        URI uri = list.get(0).getUri();
        String url=uri.toString();
        if (url != null) {
            return (new RestTemplate()).getForObject(url, String.class);
        }
    }

但我不确定如何配置具有路径的服务,例如

@GetMapping("/greetings")

现在我可以将其硬编码为

List<ServiceInstance> list = client.getInstances(service);
    if (list != null && list.size() > 0) {
        URI uri = list.get(0).getUri();
        String url=uri.toString()+"/greetings";
        if (url != null) {
            return (new RestTemplate()).getForObject(url, String.class);
        }
    }

或者在客户端 bootstrap.yml 中将此注册为服务名称

spring:
  application:
    name: eurekaClient2/greetings

但是还有其他方法吗? 如果我想公开一个get服务和一个post服务怎么办? 在这种情况下我该如何配置?

从 Eureka 服务器,您将不会获得其实例在 Eureka 服务器中注册的服务提供的端点。

来自 Eureka 服务器的响应仅包含有关应用程序可用性的信息,如主机名、IP 地址等

客户将不得不对他们想要调用的其他服务的端点进行硬编码(或从属性中读取它们)。 Eureka 仅提供已注册实例的主机名(和其他相关详细信息)。

spring.application.name 用作服务标识。服务使用此服务 ID 将自身注册到 Eureka 服务器注册表。