数据访问代理默认不支持同城双活模式,您需要进行手动配置。本文将介绍如何为数据访问代理配置同城双活模式。
操作步骤
在工程 pom.xml 文件中,添加以下 Maven 依赖。
<dependency> <groupId>com.alipay.sofa</groupId> <artifactId>dbp-connector-java</artifactId> <version>1.0.8</version> </dependency>
根据以下示例,修改 Spring 配置文件。
<!-- vip寻址--> <bean id="dbpDiscovery" class="com.alipay.sofa.dbp.discovery.DbpDiscovery"/> <!-- dbp-connector代理--> <bean id="delegatingDataSource" class="com.alipay.sofa.dbp.DbpDataSource" init-method="init"> <property name="delegate"ref="simpleDataSource"/> <property name="appName" value="${yourAppName}"/> <property name="database" value="${yourDatabase}"/> <property name="dbpInstanceId" value="${yourDbpInstanceId}"/> <property name="clientTracer" ref="clientTracer"/> </bean> <!-- 连接池配置,以 druid 为例 --> <bean id="simpleDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://${yourDbpInstanceId}:8306/${yourDatabase}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </bean> <bean id="clientTracer" class="com.alipay.sofa.dbp.DbpClientTracer"/>
说明:目前支持的连接池包括 Druid、DBCP、C3P0、Tomcat。排除不需要自动寻址的 DataSoure。
<!-- 有些数据源需要直连数据库或者类似 spring 的 AbstractRoutingDataSource--> <bean id="dbpDiscovery" class="com.alipay.sofa.dbp.discovery.DbpDiscovery"> <property name="excludeDataSources"> <list> <value>dynamicDataSource</value> </list> </property> </bean>
如果 Spring 配置文件中配置了事务,事务中的 DataSource 配置需要使用 dbp-connector 代理 DataSource,即第 3 步 Spring 配置文件中的
delegatingDataSource
。
文档内容是否对您有帮助?