我已经开始检查 mysql 连接器 j 的复制范式,发现我们可以对主从数据库进行单独的读写操作。
我检查了下面的页面并获得了一些关于操作的线索,但仍然需要知道 mysql-jdbc 如何理解哪个服务器是主服务器以及哪些服务器是从属服务器?(可能有点傻,抱歉)
我已经开始检查 mysql 连接器 j 的复制范式,发现我们可以对主从数据库进行单独的读写操作。
我检查了下面的页面并获得了一些关于操作的线索,但仍然需要知道 mysql-jdbc 如何理解哪个服务器是主服务器以及哪些服务器是从属服务器?(可能有点傻,抱歉)
ReplicationDriver 或 NonRegisteringReplicationDriver 将第一个 url 决定为master,其余的则视为slave
您应该考虑的一点是:如果您使用的是 ReplicationDriver 或 NonRegisteringReplicationDriver,您需要让至少两个主机包含相同的数据库实例。否则你会得到一个 SQLException 告诉:“必须指定至少一个从属主机连接到主/从复制负载平衡功能”。
还有一点:您实际上不需要创建 NonRegisteringReplicationDriver 的实例。因为 ReplicationDriver 也在使用它。您可以通过让您的应用程序抛出和异常来检查它。你会看到的是;通过 NonRegisteringReplicationDriver.connect(..) 方法尝试了数据库连接。
编辑(!):您实际上不需要为您的系统创建非特定驱动程序。您需要知道的是您在做什么以及正确的连接 url。因为 Driver 类本身会根据复制模式和负载平衡模式检查 url。然后它触发所需的驱动程序实例。