Quarkus reactive-pg-client连接localhost被拒绝问题排查
Quarkus Dev Service PostgreSQL连接问题解答
问题1:为何quarkus-hibernate尝试连接端口32769,如何映射到Docker容器的5432端口?
32769是Quarkus Dev Service为PostgreSQL容器自动分配的主机随机端口,容器内部确实用5432端口,但Dev Service本应自动完成端口映射和连接配置。出现连接拒绝,要么是Docker未启动、PostgreSQL容器拉取/启动失败,要么是你的自定义配置覆盖了Dev Service的自动逻辑,导致应用直接去连这个随机端口但容器未正常运行。不需要手动做端口映射,先检查Docker是否正常运行,再排查有没有配置冲突覆盖了Dev Service的自动配置。
问题2:是否需要在application.properties中指定类似quarkus.datasource.url=vertx-reactive:postgresql://localhost:5432/quarkus_test的端口配置?
dev模式下绝对不要手动指定这个配置。Quarkus Dev Service会自动生成完整的数据源配置(包括url、用户名、密码),如果你手动写了这个配置,会直接覆盖Dev Service的自动设置,导致应用去连你指定的固定端口,而不是Dev Service分配的容器端口,反而会引发连接问题。只有当你不想用Dev Service、自己手动搭建PostgreSQL服务时,才需要配置这个url。
问题3:带%prod前缀的默认配置是否需要去掉前缀,才能在dev模式下正确生效?
完全不需要。%prod是Quarkus的配置环境前缀,只有在生产模式(prod)启动时才会加载这些配置,dev模式根本不会读取带%prod前缀的设置。dev模式会优先使用带%dev前缀的配置,其次是不带任何前缀的默认配置。所以你的%prod配置不会影响dev模式,不用动它。
内容的提问来源于stack exchange,提问作者mononoke83
相关产品推荐
相关产品推荐

