如何在尤里卡服务器上为每个尤里卡客户端注册多个服务?
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 服务器注册表。
我开始学习 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 服务器注册表。