SpringCloud+Nacos整合Seata

资料下载(本文版本1.3.0)
seata: https://github.com/seata/seata
**seata-server:**https://github.com/seata/seata/releases
**参考文档:**http://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html

1. nacos配置

修改seata源码中 ..\seata-1.3.0\script\config-centerconfig.txt

service.vgroupMapping.my_test_tx_group=default
# 更改my_test_tx_group为自己服务名称,多个服务复制即可,需要与步骤 3 配置对应
service.vgroupMapping.platform-provider-card-group=default
service.vgroupMapping.platform-provider-ring-group=default

将 Seata 配置添加到 Nacos 中

cd ..\seata-1.3.0\script\config-center\nacos
sh nacos-config.sh localhost

成功后提示init nacos config finished, please start seata-server

在 Nacos 管理页面应该可以看到有多个 GroupSEATA_GROUP的配置

2. seata-server配置

修改配置文件file.conf

mode修改为db模式(db模式为高可用模式,全局事务会话信息通过db共享,相应性能差些,按实际需求调整模式)

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

  ## database store property
  db {
    ## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.
    datasource = "druid"
    ## mysql/oracle/postgresql/h2/oceanbase etc.
    dbType = "mysql"
    driverClassName = "com.mysql.jdbc.Driver"
    url = "jdbc:mysql://127.0.0.1:3306/seata"
    user = "root"
    password = "root"
    minConn = 5
    maxConn = 30
    globalTable = "global_table"
    branchTable = "branch_table"
    lockTable = "lock_table"
    queryLimit = 100
    maxWait = 5000
  }
}
修改配置文件registry.conf

切换为nacos模式,group = "SEATA_GROUP"cluster = "default"后面配置需对应

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"

  nacos {
    application = "seata-server"
    serverAddr = "127.0.0.1:8848"
    group = "SEATA_GROUP"
    namespace = ""
    cluster = "default"
    username = ""
    password = ""
  }
}
启动seata-server

cmd运行seata-server.bat,这种方法如有错误可看到日志进行处理,不会闪退。

启动成功后会在nacos中看到seata-server服务

3. 项目集成配置

引入seata依赖,根据官方参考文档这里选择了seata-spring-boot-starter配置较简单

<dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

添加seata相关配置信息,需要在每个服务中配置,并修改tx-service-group为服务名称,并与步骤 1 中nacos配置保持一致

seata:
  application-id: ${spring.application.name}
  #需要和nacos中配置保持一致
  tx-service-group: platform-provider-ring-group
  config:
    type: nacos
    nacos:
      #需要和server在同一个注册中心下
      serverAddr: 127.0.0.1:8848
      #需要server端(registry和config)、nacos配置client端(registry和config)保持一致
      group: SEATA_GROUP
  registry:
    type: nacos
    nacos:
      #需要和server端保持一致,即server在nacos中的名称,默认为seata-server
      application: seata-server
      serverAddr: 127.0.0.1:8848
      #需要server端(registry和config)、nacos配置client端(registry和config)保持一致
      group: SEATA_GROUP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud Alibaba是Spring Cloud的一个子项目,它是阿里巴巴微服务生态的重要组成部分,提供了一系列基于Spring Boot和Spring Cloud微服务组件,如服务注册与发现、配置管理、负载均衡、服务调用、熔断器等。而Nacos作为一个新兴的服务发现和配置中心,可以方便地进行服务治理。 Spring Cloud Alibaba整合Nacos的过程相对简单,只需要引入相关依赖,并在代码中使用对应的注解进行配置即可。 首先,在pom.xml文件中添加以下依赖: ```xml <!-- Nacos Discovery --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- Nacos Config --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> ``` 然后,在启动类上使用@EnableDiscoveryClient注解启用Nacos服务注册与发现功能: ```java @SpringBootApplication @EnableDiscoveryClient public class DemoApplication{ public static void main(String[] args){ SpringApplication.run(DemoApplication.class,args); } } ``` 接下来就可以使用@NacosValue注解注入配置信息: ```java @RestController public class DemoController{ @NacosValue(value="${config.key}",autoRefreshed=true) private String configValue; @GetMapping("/config") public String getConfig(){ return configValue; } } ``` 这样就可以通过Nacos Config来动态修改配置信息了。另外,Spring Cloud Alibaba还提供了一些其他有用的组件,如Sentinel、Seata等,可以方便地进行服务治理和分布式事务管理。 总的来说,Spring Cloud Alibaba整合Nacos是一个极为方便且实用的方式,它可以大大简化微服务应用的开发和部署,提高了系统的可靠性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值