En utilisant la réplication de MySQL (maître / esclave) avec mybatis
-
27-10-2019 - |
Question
Je me demande comment je peux utiliser une base de données de réplication MySQL maître / esclave avec mybatis. JDBC offre un com.mysql.jdbc.ReplicationDriver
(voir ici ), mais je ne pouvais pas savoir où je peux utiliser des choses similaires, y compris toutes les propriétés que je peux configurer belles ( roundRobinLoadBalance , autoreconnect , ...) à mybatis .
Actuellement, j'ai configuré ma base de données none répliqué dans mybatis comme ceci:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/database" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
<environment id="production">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://xxx:3306/database" />
<property name="username" value="production" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
Quelqu'un at-il un un indice pour moi?
Merci pour votre aide.
Daniel
La solution
AUTRE REPONSE
Si vous remarquez, les propriétés vous définissez dans le fichier XML pour le pilote sont également des propriétés communes définies et transmises à jdbc. Donc, je ne serais pas surpris si mybatis était juste de les prendre et de les transmettre à droite dans le conducteur. Alors peut-être essayer ceci:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<!-- Just use ReplicationDriver -->
<property name="driver" value="com.mysql.jdbc.ReplicationDriver" />
<property name="url"
value="jdbc:mysql://localhost:3306/database" />
<property name="autoReconnect" value="true" />
<property name="roundRobinLoadBalance" value="true" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
<environment id="production">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<!-- Just use ReplicationDriver -->
<property name="driver" value="com.mysql.jdbc.ReplicationDriver" />
<property name="url"
value="jdbc:mysql://xxx:3306/database" />
<property name="autoReconnect" value="true" />
<property name="roundRobinLoadBalance" value="true" />
<property name="username" value="production" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>