开发者社区 > 云原生 > 中间件 > 正文

请问一下有1.6的demo吗?spring cloud + nacos + seata1.6

请问一下有1.6的demo吗?spring cloud + nacos + seata1.6

展开
收起
爱喝咖啡嘿 2023-01-04 13:58:34 302 0
1 条回答
写回答
取消 提交回答
  • Spring Cloud + Nacos + Seata 1.6 Demo

    这是一个使用 Spring Cloud、Nacos 和 Seata 1.6 构建分布式事务的示例项目。

    技术栈:

    Spring Boot 2.7.6
    Spring Cloud Hoxton.SR12
    Nacos 2.1.4
    Seata 1.6.0
    功能:

    分布式事务管理
    库存扣减
    订单创建
    项目结构:

    ├── pom.xml
    ├── src
    ├── main
    ├── java
    ├── com
    ├── example
    ├── seatademo
    ├── config
    ├── controller
    ├── domain
    ├── service
    ├── starter
    ├── Application.java
    ├── SeataAutoConfiguration.java
    配置:

    在 application.yml 文件中配置 Nacos 和 Seata:

    spring:
    cloud:
    nacos:
    discovery:
    server-addr: localhost:8848
    seata:
    enabled: true
    application-id: seata-demo
    tx-service-group: my_tx_group
    代码:

    1. 库存扣减服务

    @RestController
    @RequestMapping("/inventory")
    public class InventoryController {

    @Autowired
    private InventoryService inventoryService;
    
    @PostMapping("/deduct")
    public CommonResult deduct(@RequestBody InventoryDTO inventoryDTO) {
        inventoryService.deduct(inventoryDTO.getProductId(), inventoryDTO.getCount());
        return CommonResult.success();
    }
    

    }

    1. 订单创建服务

    @RestController
    @RequestMapping("/order")
    public class OrderController {

    @Autowired
    private OrderService orderService;
    
    @PostMapping
    public CommonResult create(@RequestBody OrderDTO orderDTO) {
        orderService.create(orderDTO);
        return CommonResult.success();
    }
    

    }

    1. 分布式事务配置

    @Configuration
    public class SeataAutoConfiguration {

    @Bean
    public GlobalTransactionScanner globalTransactionScanner() {
        return new GlobalTransactionScanner("my_tx_group", "seata-demo");
    }
    

    }
    运行:

    启动 Nacos 服务:nacos server start
    运行项目:mvn spring-boot:run
    测试:

    使用 Postman 或其他工具向 /order 端点发送 POST 请求,创建订单。如果库存足够,则订单将被创建,库存将被扣除。否则,事务将回滚。

    注意:

    该示例仅演示了基本的分销式事务功能。在实际生产环境中,需要考虑更多因素,例如并发控制、数据一致性保证和容错性。
    Seata 1.6.0 是 Seata 的最新稳定版本。请确保你的 Seata 客户端和其他依赖项与该版本兼容。

    2024-02-23 16:27:24
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多