Mysql JBoss Java EE 6应用程序的Amazon RDS主从配置

Mysql JBoss Java EE 6应用程序的Amazon RDS主从配置,mysql,amazon-ec2,java-ee-6,amazon-rds,Mysql,Amazon Ec2,Java Ee 6,Amazon Rds,我有一个JavaEE6应用程序,可以连接到一个独立的MySQL实例。目前,它使用datasource.xml(部署在appserver上)和persistence.xml(部署在application.war中)连接到本地主机MySQL 我希望将其配置为与在主从模式下运行的Amazon RDS Mysql实例对话。这意味着我需要将我的应用程序配置为只向主应用程序写入数据,而从应用程序读取数据 我怎样才能做到这一点?我猜这是一个datasource.xml或persistence.xml编辑?我认

我有一个JavaEE6应用程序,可以连接到一个独立的MySQL实例。目前,它使用datasource.xml(部署在appserver上)和persistence.xml(部署在application.war中)连接到本地主机MySQL

我希望将其配置为与在主从模式下运行的Amazon RDS Mysql实例对话。这意味着我需要将我的应用程序配置为只向主应用程序写入数据,而从应用程序读取数据


我怎样才能做到这一点?我猜这是一个datasource.xml或persistence.xml编辑?

我认为没有办法自动完成这项工作。您可以设置两个单独的连接池,然后必须根据需要编写应用程序代码以使用不同的数据源

JBoss 6数据源的说明如下:


您可以将RDS设置为Multi-AZ以实现高可用性,然后可以为只读查询创建一个或多个读取副本。

您需要将JDBC URL与驱动程序一起使用

com.mysql.jdbc.ReplicationDriver 
这是通过URL获取的,如

jdbc:mysql:replication//master_ip:3306,slave_1_ip:3306
RDS将使用
JDBC\u连接\u字符串
系统变量

----补充更新------- 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&amp;verifyServerCertificate=false&amp;useSSL=true&amp;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>

jdbc:mysql://${env.AMAZON\u RDS\u mysql\u DB\u HOST}:${env.AMAZON\u RDS\u mysql\u DB\u PORT}/${env.AMAZON\u RDS\u mysql\u DB\u NAME}?autoReconnect=true&;verifyServerCertificate=false&;usesl=true&;requireSSL=true
mysql
${env.AMAZON\u RDS\u MYSQL\u DB\u USERNAME}
${env.AMAZON\u RDS\u MYSQL\u DB\u PASSWORD}
选择1
真的
空闲连接