docker run --name seata \
-p 8099:8099 \
-p 7099:7099 \
-e SEATA_IP=192.168.244.134 \
-v ./seata:/seata-server/resources \
--privileged=true \
--network hgq \
-d \
seataio/seata-server:1.5.2
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

在这里插入图片描述
在这里插入图片描述
访问http://你的虚拟机地址:7099,账号密码在seata目录中的application.yaml文件中设置。
在这里插入图片描述

微服务集成Seata

(1)要在项目中引入Seata依赖:

	
  <dependency>
      <groupId>com.alibaba.cloudgroupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
  dependency>
  
  <dependency>
      <groupId>org.springframework.cloudgroupId>
      <artifactId>spring-cloud-starter-bootstrapartifactId>
  dependency>
  
  <dependency>
      <groupId>com.alibaba.cloudgroupId>
      <artifactId>spring-cloud-starter-alibaba-seataartifactId>
  dependency>
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

(2)在在nacos上添加一个共享的seata配置,命名为shared-seata.yaml:
在这里插入图片描述

seata:
  registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址
    type: nacos # 注册中心类型 nacos
    nacos:
      server-addr: 192.168.244.134:8848 # nacos地址
      namespace: "" # namespace,默认为空
      group: DEFAULT_GROUP # 分组,默认是DEFAULT_GROUP
      application: seata-server # seata服务名称
      username: nacos
      password: nacos
  tx-service-group: hmall # 事务组名称
  service:
    vgroup-mapping: # 事务组与tc集群的映射关系
      hmall: "default"
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
spring:
  application:
    name: trade-service # 服务名称
  profiles:
    active: dev
  cloud:
    nacos:
      server-addr: 192.168.150.101 # nacos地址
      config:
        file-extension: yaml # 文件后缀名
        shared-configs: # 共享配置
          - dataId: shared-jdbc.yaml # 共享mybatis配置
          - dataId: shared-log.yaml # 共享日志配置
          - dataId: shared-swagger.yaml # 共享日志配置
          - dataId: shared-seata.yaml # 共享seata配置
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

修改对应的application.yaml文件内容如下:

server:
  port: 8085
feign:
  okhttp:
    enabled: true # 开启OKHttp连接池支持
  sentinel:
    enabled: true # 开启FeignSentinel的整合
hm:
  swagger:
    title: 交易服务接口文档
    package: com.hmall.trade.controller
  db:
    database: hm-trade
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

同时分别改造cart-service和item-service两个微服务模块。


总结

Seata 提供了一种简单、高效的方式来解决微服务架构中的分布式事务问题。在本博客中,我们介绍了 Seata 的快速入门、部署 TC 服务以及如何将 Seata 集成到微服务中。通过正确配置和使用 Seata,我们可以在微服务环境中实现事务的一致性管理,提高系统的可靠性和可维护性。

通过本文的指导,相信你已经掌握了如何快速入门 Seata,部署 TC 服务,并将其集成到微服务项目中。

data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/m0_63267251/article/details/145404356","extend1":"pc","ab":"new"}">>
注:本文转载自blog.csdn.net的程序猿零零漆的文章"https://blog.csdn.net/m0_63267251/article/details/145404356"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!