nacos+Seata+Mybatis plus 教程


 

1、環境配置

下載:https://github.com/seata/seata

 

 

 2、配置:配置的是 conf下的file.conf與registry.conf

file.conf

由文件的形式改為數據庫的形式工作,所以下面配置的是數據庫信息與最上面的組信息,需要記住這個組名(可自起 *_tx_group)

 

 

 

 

 registry.conf

配置了注冊中心,3333是nacos的一個節點

 

 

 配置數據庫

"seata" 數據庫sql來源:conf > db.store.sql 、版本源碼查看(這里是v1.00) +業務數據庫

undo_log 公共表,sql :查看(v1.00) (小於1.00 ,conf > db_undo_log.sql)

3、啟動Seata ,直接文件啟動   root@innor:/usr/local/seata/seata-1.0.0/bin# ./seata-server.sh

4、在項目中配置

依賴:

        <!--seata-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
            <!-- 因為兼容版本問題,所以需要剔除它自帶的seata的包 -->
            <exclusions>
                <exclusion>
                    <artifactId>seata-all</artifactId>
                    <groupId>io.seata</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.seata</groupId>
            <artifactId>seata-all</artifactId>
            <version>1.0.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>

yml

組名與bruid數據源的配置

 

 主啟動類:

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消數據源的自帶創建
...

 

配置:

//用於Seata的數據源配置
@Configuration
public class DataSourceConfig {


    /**
     * 從配置文件獲取屬性構造datasource,注意前綴,這里用的是druid,根據自己情況配置,
     * 原生datasource前綴取"spring.datasource"
     *
     * @return
     */
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DruidDataSource druidDataSource(){
        return new DruidDataSource();
    }
    /**
     * 構造datasource代理對象,替換原來的datasource
     *
     * @param druidDataSource
     * @return
     */
    @Primary
    @Bean("dataSource")
    public DataSourceProxy dataSourceProxy(DataSource druidDataSource) {
        return new DataSourceProxy(druidDataSource);
    }
}

將file.conf與registry.conf復制到項目的resource下

業務:

在事務操作的服務加上注解,注意OpenFeign不要寫實現方法,因為調用出問題,且沒有后備方法就會報錯,報錯就會使數據回滾。

@GlobalTransactional(name = "fsp-test" , rollbackFor = Exception.class)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM