版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。
本文連接:gudepeng.github.io/note/2019/1…
demo樣例:github.com/gudepeng/de…mysql
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
複製代碼
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
@Primary
@Bean("dataSource")
public DataSourceProxy dataSource(DataSource druidDataSource) {
return new DataSourceProxy(druidDataSource);
}
@Bean
public SqlSessionFactory sqlSessionFactory(DataSourceProxy dataSourceProxy) throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSourceProxy);
factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath*:/mapper/*.xml"));
return factoryBean.getObject();
}
}
複製代碼
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
複製代碼
@GlobalTransactional
複製代碼
[seata-server]{github.com/seata/seata…}git
修改conf下的registry.confgithub
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd三、sofa
type = "nacos"
nacos {
serverAddr = "localhost"
namespace = "piblic"
cluster = "default"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "localhost"
#namespace爲空,不然後面會報找不到store.db.driver-class-name找不到
namespace = ""
}
}
複製代碼
修改registry下的type爲nacos,配置nacos的serverAddr爲你nacos服務的地址,不要帶http和端口號。它會默認去連你的8858端口,如需修改端口,請修改nacos-config.sh文件中的端口redis
拷貝registry.conf到每一個使用seata服務的resources下spring
修改conf下nacos-config.txtsql
store.mode=db
store.db.datasource=dbcp
store.db.db-type=mysql
store.db.driver-class-name=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true
store.db.user=mysql
store.db.password=mysql
複製代碼
修改store.mode爲db,修改對應db配置文件爲你本身的mysql。 修改service.vgroup_mapping.my_test_tx_group=default屬性 0.9.0.1版本後:my_test_tx_group修改成本身的服務名(spring.application.name)+"-seata-service-group" 0.9.0.1版本前:my_test_tx_group修改成本身的服務名(spring.application.name)+"-fescar-service-group" 能夠spring-cloud-alibaba-seata項目下的GlobalTransactionAutoConfiguration累中看到bash
有多少個服務須要使用seata就要添加多少個ervice.vgroup_mappingapp
執行nacos-config.sh Nacos-Server-IP爲你nacos服務的ip地址),在一步驟是把nacos-config.txt中的配置更新到nacos上,若是nacos-config.txt從新修改,就要從新執行該命令。或者登錄到nacos的管理界面直接進行修改。分佈式
以後添加,刪除,修改服務,在nacos配置上做對應修改便可ui
在上一步驟中store.db.url的database中執行建表語句(conf下db_store.sql)
在每個業務庫中執行建表語句(conf下db_undo_log.sql)