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