ServiceDiscovery.java 文件源码

java
阅读 26 收藏 0 点赞 0 评论 0

项目:vert.x-microservice 作者:
private ServiceInfo getServiceInfoByVertx(Consumer<ServiceInfoResult> consumer, Function<ServiceInfo,Boolean> criteria) {
    // TODO add caching mechanism with TTL to reduce
    vertx.eventBus().send(GlobalKeyHolder.SERVICE_REGISTRY_GET, "xyz", (AsyncResultHandler<Message<byte[]>>) h ->
            {
                if (h.succeeded()) {
                    final List<ServiceInfo> serviceInfos = getServiceInfoFromMessage(h).filter(info -> criteria.apply(info)).collect(Collectors.toList());
                    if(!serviceInfos.isEmpty()){
                        consumer.accept(new ServiceInfoResult(serviceInfos.stream(),h.succeeded(),h.cause()));
                    }else {
                        consumer.accept(new ServiceInfoResult(serviceInfos.stream(),false,new ServiceNotFoundException("selected service not found")));
                    }
                } else {
                    consumer.accept(new ServiceInfoResult(Stream.<ServiceInfo>empty(),h.succeeded(),h.cause()));
                }

            }
    );

    return null;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号