版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: gudepeng.github.io/note/2019/1…
<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… }
修改conf下的registry.conf
registry { # file 、nacos 、eureka、redis、zk、consul、etcd3、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文件中的端口
拷贝registry.conf到每个使用seata服务的resources下
修改conf下nacos-config.txt
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累中看到
有多少个服务需要使用seata就要添加多少个ervice.vgroup_mapping
执行nacos-config.sh Nacos-Server-IP为你nacos服务的ip地址),在一步骤是把nacos-config.txt中的配置更新到nacos上,如果nacos-config.txt重新修改,就要重新执行该命令。或者登陆到nacos的管理界面直接进行修改。
之后添加,删除,修改服务,在nacos配置上作对应修改即可