Utilizzando la replica di MySQL (Master / Slave) con MyBatis
-
27-10-2019 - |
Domanda
Mi chiedo solo come posso usare un database di replica master / slave MySQL con MyBatis. JDBC offre una com.mysql.jdbc.ReplicationDriver
(vedi qui ), ma non ho potuto scoprire dove posso usare le cose simili tra cui tutte le proprietà piacevoli posso configurare ( roundRobinLoadBalance , Autoreconnect , ...) in MyBatis .
Al momento ho configurato il mio database nessuno-replicato in MyBatis in questo modo:
<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>
Qualcuno ha un un suggerimento per me?
Grazie per il vostro aiuto.
Daniel
Soluzione
Un'altra risposta POSSIBILE
Se si nota, le proprietà si sta impostando in XML per il conducente sono anche le proprietà comuni definiti e passati a JDBC. Quindi, io non sarei sorpreso se MyBatis stava solo prendendo loro e passando proprio nel driver. Quindi forse provare questo:
<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>