如何解决查询到PgPool-II并命令show pool_nodes不起作用
我有一个网络核心应用程序,该应用程序通过PgPool-II集群连接到PostgreSQL服务器。效果很好,例如当我尝试使用pgpool sql命令(例如“ show pool_nodes”)时,这些命令似乎通过pgpool传递,而是进入一个抛出错误的PostgreSQL服务器(应该这样做)。
似乎Npgsql使用了“扩展查询协议”,该协议不适用于pgpool sql命令。他们需要“简单查询协议”。
是否可以在Npgsql中使用“简单查询协议”? 如果没有,是否还有其他方法可以通过Net Core发送PostgreSQL查询,而不使用Npgsql?
解决方法
否,当前没有一种方法可以通过PostgreSQL简单协议发送用户指定的查询。 Npgsql对某些内部命令(例如COMMIT)使用简单协议,但是面向用户的查询API始终使用扩展协议。
我想用PgPool-II提出这个问题,看来它们也应该拦截扩展协议消息-毕竟这是标准PostgreSQL协议的一部分(请在此处发布指向该问题的链接)。如果出于某种原因确实无法实现,则可以在Npgsql repo上打开一个问题,添加一些用于生成简单查询的API。
,我通过变通办法解决了这个问题。
从网络核心代码中,我调用psql命令应用程序,并让它处理对pgpool集群的请求。不是我想要的不错的解决方案,但是它可以工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。