问题描述
我有两个微服务。第一个通过 Vert.x 客户端调用第二个微服务,第二个微服务通过 Vert.x 客户端调用 solr。但是所有这些过程都存在延迟问题。响应在 3-4 秒内出现,这是性能瓶颈。 quarkus 中是否有任何方法或工具可以进行性能分析并提供导致性能问题的所有代码段的详细信息?
public class SolrWebClient {
@Inject
public Vertx vertx;
WebClient client;
@postconstruct
public void initialize() {
this.vertx = Vertx.vertx();
this.client = WebClient.create(vertx,new WebClientOptions().setDefaultPort(443).setSsl(true).setVerifyHost(false).setTrustAll(true));
}
public Uni<JsonObject> search(URL url,SolrQuery query,Integer timeout) {
int port = url.getPort();
if (port == -1 && "https".equals(url.getProtocol())) {
port = 443;
}
if (port == -1 && "http".equals(url.getProtocol())) {
port = 80;
}
HttpRequest<Buffer> request = client.post(port,url.getHost(),url.getPath()).timeout(timeout);
return request.sendJson(query).map(resp -> {
return resp.bodyAsJsonObject();
}).onFailure().recoverWithUni(f -> {
return Uni.createFrom().item(new JsonObject().put("solrError",f.getMessage()));
});
}
}
在此之前,在第一个微服务中,我们有一个服务,它调用 dynamodb 来获取一些帐户记录,然后该微服务提取用户的帐号并通过第二个微服务(负载均衡 solr 集群)在 solr 中搜索。但我想通过某种工具或某种方式(如果 quarkus 支持)知道是什么导致了这种延迟问题..
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)