首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring boot微服务架构查找服务实例数

Spring boot微服务架构查找服务实例数
EN

Stack Overflow用户
提问于 2018-08-27 02:39:53
回答 1查看 401关注 0票数 0

我正在尝试使用spring boot设置微服务架构。我通过分离组件并使用ribboneureka naming serverzuul API等技术创建了它。

service1从数据库读取输入,并通过ribbon、eureka和zuul调用service2

代码语言:javascript
复制
List<Object> inputs= ...
for(Object input: inputs){
    service2Proxy.process(input); // calling service 2
}

是否可以根据service2的可用实例数来调用service2?也就是说,如果一次有3个service2实例可用,我一次只需要向service2调用3个请求。

这个问题的解决方案是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-08-27 22:47:56

如果您直接使用LoadBalancerClient (通过自动装配),然后使用LoadBalancerClient.choose(serviceId),那么您可以获得它返回的ServiceInstance。这包含服务的uri。因此,在每次调用之后,将此uri存储在一组uri中,并在进行另一次调用之前,检查是否已经使用了服务器实例already.If,所有服务器都已耗尽,请等待进一步的输入。当您准备好再次处理时,请清除该设置并重复。正如文档here中所解释的,代码可能类似于

代码语言:javascript
复制
@Autowired
    private LoadBalancerClient loadBalancer;

    public void doStuff() {
        ServiceInstance instance = loadBalancer.choose("stores");
        URI serverUri = instance.getUri();
     // use you logic here
        URI storesUri = URI.create(String.format("http://%s:%s", instance.getHost(), instance.getPort()));

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

https://stackoverflow.com/questions/52029249

复制
相关文章

相似问题

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