我有使用spring-cloud-kubernetes
依赖项的 spring boot 应用程序。这部署在 K8s 中。我已经实现了服务发现,并且@DiscoveryClient
它为我提供了服务 ids k8s 命名空间。我的问题是我想对其中一个找到的服务(运行多个 pod)进行休息调用。这个怎么做 ?我必须使用功能区客户端吗?
我的代码是
@RestController
public class HelloController {
@Autowired
private DiscoveryClient discoveryClient;
@RequestMapping("/services")
public List<String> services() {
log.info("/services - Request Received " + new Date());
List<String> services = this.discoveryClient.getServices();
log.info("Found services " + services.toString());
for (String service : services) {
// TODO call to this service
List<ServiceInstance> instances = discoveryClient.getInstances(service);
for (ServiceInstance instance : instances) {
log.info("Service ID >> " + service + " : Instance >> " + getStringVal(instance));
}
}
return services;
}
在服务实例中,我可以找到要调用的主机和端口,但我想调用服务,以便某些负载平衡机制调用实际的 pod 实例。