zoukankan      html  css  js  c++  java
  • jdbc连接池工具与pg fdw连接的问题

    最近一个项目使用了postgres 的fdw 进行跨库的业务数查询分析,直接使用pg 的client 工具以及直接使用pg的datasource
    实现PGSimpleDataSource测试都是没有问题的

    • pg fdw 使用参考

    因为项目默认使用了alibaba 的druid 连接池工具发现没请求几次就会出现
    问题,现象是后端pg服务就挂了,因为基于容器部署,开启了restart always 选项,会自动重启,刚开始以为是alibaba druid
    的问题,后边尝试了下大名鼎鼎的HikariCP发现问题依旧

    • 排查
      在发现两个大名鼎鼎的连接池工具都有问题之后,发现会不会就是因为fdw的问题引起的,验证方法:
      手工创建表然后测试各种连接池工具(发现没有问题)
      同时查看关于调用的一些日志,发现一些特殊的地方,部分sql 转换有异常出现(使用连接池工具),当出现问题的时候
      pg server会有如下问题
     
     00000: reaping dead processes
    •[36mfdw-db_1  |•[0m 2020-10-14 09:29:11.411 CST [1] 位置:  reaper, postmaster.c:2899
    •[36mfdw-db_1  |•[0m 2020-10-14 09:29:11.411 CST [1] 调试:  00000: 服务器进程 (PID 36) 被信号 11 中断: 段错误
    • 解决方法
      从排查问题的解决,应该就是pg fdw sql 处理上与数据库连接池工具有差异,sql 执行计划,sql 预处理上 ,所以
      暂时的解决方法是直接基于pg 提供的datasouce 进行数据操作,还得需要自己看看sql 的处理看看详细的原因

    参考资料

    https://github.com/brettwooldridge/HikariCP
    https://github.com/alibaba/druid

  • 相关阅读:
    Java 学习笔记(10)——容器
    Java 学习笔记(9)——java常用类
    Java 学习笔记(8)——匿名对象与内部类
    OGC相关概念解析
    Django中URL有关
    转载关于Python Web后端开发面试心得
    ArcPy中mapping常见函数及用法1
    Django1.11加载静态文件
    ArcPy第一章-Python基础
    浅谈提高Django性能
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/13814203.html
Copyright © 2011-2022 走看看