數據訪問代理默認不支持同城雙活模式,您需要進行手動配置。本文將介紹如何為數據訪問代理配置同城雙活模式。
操作步驟
在工程 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
。
文檔內容是否對您有幫助?