我有一个连接到独立MySQL实例的JavaEE6应用程序。目前,它使用datasource.xml (部署在应用程序服务器上)和persistence.xml (部署在应用程序.war中)连接到本地主机.war
我希望将其配置为与在主从模式下运行的Amazon RDS Mysql实例对话。这意味着我需要将我的应用程序配置为只写主应用程序,只读从应用程序。
我如何才能做到这一点?我猜这是datasource.xml还是persistence.xml编辑?
发布于 2014-09-08 05:14:37
我不认为有一种方法可以自动做到这一点。您可以设置两个单独的连接池,然后必须根据需要编写应用程序以使用不同的数据源。
此处提供了JBoss 6数据源的说明:
您可以将RDS设置为Multi-AZ以实现高可用性,然后可以为只读查询创建一个或多个读取复制副本。
发布于 2014-09-12 07:05:20
您将需要在驱动程序中使用JDBC URL
com.mysql.jdbc.ReplicationDriver 这是通过URL获取的,如下所示
jdbc:mysql:replication//master_ip:3306,slave_1_ip:3306RDS将使用JDBC_CONNECTION_STRING系统变量。
-其他更新-来自JBOSS的datasource.xml示例
<datasource jndi-name="java:jboss/datasources/MysqlDS"
enabled="true" use-java-context="true" pool-name="MysqlDS" use-ccm="true">
<connection-url>jdbc:mysql://${env.AMAZON_RDS_MYSQL_DB_HOST}:${env.AMAZON_RDS_MYSQL_DB_PORT}/${env.AMAZON_RDS_MYSQL_DB_NAME}?autoReconnect=true&verifyServerCertificate=false&useSSL=true&requireSSL=true
</connection-url>
<driver>mysql</driver>
<security>
<user-name>${env.AMAZON_RDS_MYSQL_DB_USERNAME}</user-name>
<password>${env.AMAZON_RDS_MYSQL_DB_PASSWORD}</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
<background-validation>true</background-validation>
</validation>
<pool>
<flush-strategy>IdleConnections</flush-strategy>
<allow-multiple-users />
</pool>
</datasource>https://stackoverflow.com/questions/18955740
复制相似问题