首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用spring cloud在k8s中的两个服务之间进行通信

如何使用spring cloud在k8s中的两个服务之间进行通信
EN

Stack Overflow用户
提问于 2020-01-31 18:59:33
回答 1查看 159关注 0票数 0

我有spring boot应用程序,我使用spring-cloud-kubernetes依赖项。它部署在K8s中。我已经实现了服务发现,我有@DiscoveryClient,它为我提供了服务I,k8s namespace.My的问题是,我想对这个发现的服务之一进行rest调用(它有多个pods在运行)。该怎么做呢?必须使用Ribbon Client吗?

我的代码是

代码语言:javascript
复制
@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实例。

EN

回答 1

Stack Overflow用户

发布于 2020-01-31 20:29:25

您需要使用Spring Cloud Kubernetes Ribbon调用主机和端口,这些主机和端口将转到kubernetes服务,您将获得Kubernetes服务和Kube代理提供的负载均衡。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60002582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档