当前位置: 首页 > 知识库问答 >
问题:

openshift中的Spring Boot/VertX调用超时

阴波峻
2023-03-14
RestTemplate template = new RestTemplate();
String url = "http://vertx-service:8080/"; // I'm using discovery pattern here
String response = template.getForEntity(url, String.class).getBody());
public class SimpleWebVerticle extends AbstractVerticle {

    @Override
    public void start() throws Exception {
        Router router = Router.router(vertx);

        router.get("/").handler(this::handleGet);

        router.route().handler(BodyHandler.create());
        vertx.createHttpServer().requestHandler(router::accept).listen(8080);
    }

    private void handleGet(RoutingContext routingContext) {
        routingContext.vertx().<String>executeBlocking(future -> {
            String response;
            CompletableFuture<String> cf = CompletableFuture.supplyAsync(
                    () -> {
                        String res = "Hello from VertX! Server name: "
                        + System.getenv().getOrDefault("HOSTNAME", "unknown");
                        return res;
                    });
            try {
                response = cf.get();
            } catch (InterruptedException | ExecutionException e) {
                response = e.getMessage();
            }
            future.complete(response);
        }, false, result -> {
            routingContext.response()
                    .putHeader("Content-Type", "text/plain")
                    .end(result.result());
        });
    }
}

使用的版本:Spring Boot 2.2,Vertx 3.3,Minishift 3.11

共有1个答案

云隐水
2023-03-14

你试过用

String url = "http://vertx-service/"; 

您的URL中不需要端口8080。假设vertx-service是部署在OpenShift上的另一个服务对象的名称。还要检查vertx-service的pod详细信息,该端口是否在容器中公开。

在openshift中,服务名称充当容器映像的所有pod实例的负载平衡器。

 类似资料:
  • 在使用Openshift v3进行实验时,我可以使用Wildfly&Postgres创建和部署一个非常简单的webapplication。 我现在得到一条停止构建和部署的错误消息: 创建错误:pods“springbootmysql6-2--”被禁止:超出配额:compute-resources,request:limits.cpu=957m,limits.memory=490mi,used:li

  • 通过io的requestAbs方法调用/调用/使用REST API的vertx实现。vertx。果心http。vertx-core-3.2.0中的HttpClient类。jar导致HTTP错误::302,响应数据为HTML Erro响应。 不确定requestAbs方法的行为,因为没有引发异常,也没有写入任何日志。此外,还随附了使用vertx JAR的此方法的源代码。如果方法实现有bug,是否有问

  • 我在OpenShift容器平台v3上部署了一个应用程序。6.它由相互连接的多个服务组成。 前端服务调用后端服务的耗时函数(通过REST调用),但30秒后它会收到“504网关超时”消息。前端运行在nginx上,但是我已经配置了长代理发送/读取超时,所以504消息不是来自它。我认为它来自OpenShift平台的服务代理组件,但是我找不到在哪里以及如何配置一种服务代理超时。我知道外部路由存在HAProx

  • 是否有一种方法可以在intellij(或任何其他应用程序/工具)中调试javascript verticle,就像在任何浏览器开发工具上调试它一样?我尝试将调试器添加到代码中,但不起作用,而且我在网上也找不到任何关于它的东西。

  • 在OpenShiftV3中,我无法将我的springboot应用程序与mySQL POD链接起来。 到目前为止我所做的: > 在openshift V3中启动并运行了一个基本的spring boot应用程序。 添加了一个mysql应用程序。pod已启动并运行,没有错误。 在我的spring boot应用程序的application.properties中添加了数据源配置: spring.datas

  • 我们正在尝试开发一个自调用的lambda来成批处理S3文件。lambda角色具有附加调用所需的策略。 以下是自调用lambda的代码: 其中是对同一个lambda的调用调用。其余的事情都按预期工作,只要调用堆栈出现在这个调用请求上,它就会超时: 这是记录到CloudWatch的堆栈跟踪: