gpt4 book ai didi

java - PgPool Java/JDBC 应用程序的负载平衡

转载 作者:行者123 更新时间:2023-12-01 23:08:02 27 4
gpt4 key购买 nike

在 CentOS 上设置 PgPool 的所有可能设置后,当我使用 Java 应用程序测试它时,我发现它不起作用。
在阅读互联网上的手册(您可以找到 here )后,我发现如果将 JDBC 语句设置为 false(用于自动提交),它将无法工作。
由于我使用 Hibernate,所以我很确定它正在使用事务来设置值。
我的问题是,如果这是真的,哪种方法对复制我的数据库有用。我听说过并行模式,但我不确定它是否适用于 Java 应用程序。有人可以指导并为我提供 sample 吗?

最佳答案

业务方法结束时的修改事务按照您所描述的方式工作:创建一个 BEGIN/END block ,其中包含所有已提交或已回滚的所有修改查询。

这是通过将 autocommit 设置为 false 来完成的,但这并不意味着 Hibernate 进行的所有查询都在此模式下完成。根据所需的隔离模式,相同的查询可能会在自动提交或非自动提交模式下执行。

对于 READ_COMMITED 模式下的事务的常见情况,像按 Id 查找或命名查询这样的查询将在其自己的数据库事务中运行,自动提交为 true(因此没有 BEGIN/END block ) )。

按 ID 查找和其他读取查询只有在至少 REPEATABLE_READ 隔离模式下运行时才会触发 BEGIN block 。

这意味着,如果您使用默认的 REPEATABLE_READ 隔离模式,负载平衡将正常工作,因为大多数选择查询将在 auto-commit = true 下运行。

您可以通过记录发送到数据库的所有 SQL 查询来确认这一点,例如 log4jdbc 。这将打印所有实际发送到数据库的 SQL。

关于java - PgPool Java/JDBC 应用程序的负载平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22474540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com