当前位置:网站首页>Seata整合nacos

Seata整合nacos

2020-12-06 13:45:32 V丶zxw

author:zxw

email:502513206@qq.com

@ Jishou University


1.前言

之前一直使用的是seata+eureka的方式来使用,最近自己在家的时候忽然想用nacos来试试,毕竟之前没怎么用过。使用后发现和eureka的用法还是差别蛮大的,折腾了一天才把项目跑起来,以此来记录下使用方法。

2.使用

在使用前当然得先下载相关的包,这边说下我使用的版本

nacos:https://gitee.com/mirrors/Nacos?_from=gitee_search 我是直接通过源码构建启动的,直接拉的develop分支代码

seata:https://github.com/seata/seata/releases/tag/v1.4.0 使用的1.4版本

在使用前我们先把源码中的脚本拷贝到seata-server的目录中,config.txt放在seata根目录下,其余两个放在conf目录中,然后在conf目录中执行下面的命令 sh nacos-config.sh hostip(需要先启动nacos)这样就会将配置加入到nacos的配置中心里。

加入成功后,打开nacos的配置中心可以看到如下配置

接着我们打开seata-server的conf目录中的registry.conf文件和file.conf文件修改几处配置

registry.conf:把两处的type修改为nacos就ok了

registry{
	type = "nacos"
}
config{
	type = "nacos"
}

file.conf:这边可以根据自身情况选择存储方式,这里我使用的db

store {
  ## store mode: file、db、redis
  mode = "db"
}

然后进入bin目录,直接双击seata-server.bat启动,然后就可以在nacos的注册列表中找到seata-server节点。

接着就是我们自己的项目工程了,首先引入我们nacos和seata的maven,下面是我使用的maven配置,比较要注意的一个点就是seata-spring-boot-starter的版本要为1.3,之前用的1.1死活连不上,换成1.1的以后就连接成功了。

				<spring-boot.version>2.3.2.RELEASE</spring-boot.version>			
			<dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
		<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
            <version>LATEST</version>
            <exclusions>
                <exclusion>
                    <groupId>io.seata</groupId>
                    <artifactId>seata-spring-boot-starter</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.seata</groupId>
            <artifactId>seata-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>

然后就是我们的配置文件了,我们之前导入的config.txt里面有个组是my_test_tx_group 这边我们也使用默认的这个组,名字一定要对上不然会连接不上。剩下的其实使用默认的配置就够了,程序启动成功后,查看一下seata的cmd界面,如果连接成功会有显示。

server:
  port: 8084
spring:
  application:
    name: storage
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/fescar?characterEncoding=utf-8&?useSSL=true
    driver-class-name: com.mysql.jdbc.Driver
  cloud:
    alibaba:
      seata:
        tx-service-group: my_test_tx_group
      server-addr: 127.0.0.1:8848
seata:
  enabled: true
  application-id: storage
  tx-service-group: my_test_tx_group      #事务组
  enable-auto-data-source-proxy: true
  config:
    type: nacos
    nacos:
      namespace:
      serverAddr: 127.0.0.1:8848
      group: SEATA_GROUP
      username: "nacos"
      password: "nacos"
  registry:
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace:
      username: "nacos"
      password: "nacos"

logging:
  level:
    org.springframework.cloud.alibaba.seata.web: debug
    io.seata: debug
#eureka:
#  client:
#    service-url:
#      defaultZone: http://localhost:10010/eureka
#  instance:
#    ip-address: 127.0.0.1
#    prefer-ip-address: true

下面是我工程的项目地址:https://gitee.com/xiaowei_zxw/transaction-demo (记得点个start)

版权声明
本文为[V丶zxw]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4182062/blog/4776933