全部产品
云市场

配置同城双活模式

更新时间:2020-02-11 21:28:52

数据访问代理默认不支持同城双活模式,您需要进行手动配置。本文将介绍如何为数据访问代理配置同城双活模式。

操作步骤

  1. 在工程 pom.xml 文件中,添加以下 Maven 依赖。
    1. <dependency>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>dbp-connector-java</artifactId>
    4. <version>1.0.8</version>
    5. </dependency>
  2. 根据以下示例,修改 Spring 配置文件。

    1. <!-- vip寻址-->
    2. <bean id="dbpDiscovery" class="com.alipay.sofa.dbp.discovery.DbpDiscovery"/>
    3. <!-- dbp-connector代理-->
    4. <bean id="delegatingDataSource" class="com.alipay.sofa.dbp.DbpDataSource" init-method="init">
    5. <property name="delegate" ref="simpleDataSource"/>
    6. <property name="appName" value="${yourAppName}"/>
    7. <property name="database" value="${yourDatabase}"/>
    8. <property name="dbpInstanceId" value="${yourDbpInstanceId}"/>
    9. <property name="clientTracer" ref="clientTracer"/>
    10. </bean>
    11. <!-- 连接池配置,以 druid 为例 -->
    12. <bean id="simpleDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init">
    13. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    14. <property name="url" value="jdbc:mysql://${yourDbpInstanceId}:8306/${yourDatabase}"/>
    15. <property name="username" value="${username}"/>
    16. <property name="password" value="${password}"/>
    17. </bean>
    18. <bean id="clientTracer" class="com.alipay.sofa.dbp.DbpClientTracer"/>

    说明:目前支持的连接池包括:druid、dbcp、c3p0、tomcat。

  3. 排除不需要自动寻址的 DataSoure。

    1. <!-- 有些数据源需要直连数据库或者类似 spring 的 AbstractRoutingDataSource-->
    2. <bean id="dbpDiscovery" class="com.alipay.sofa.dbp.discovery.DbpDiscovery">
    3. <property name="excludeDataSources">
    4. <list>
    5. <value>dynamicDataSource</value>
    6. </list>
    7. </property>
    8. </bean>
  4. 如果 Spring 配置文件中配置了事务,事务中的 DataSource 配置需要使用 dbp-connector 代理 DataSource,即第 3 步 Spring 配置文件中的 delegatingDataSource