JSD-2204-Dubbo实现微服务调用-Seata-Day04

1.Dubbo实现微服务调用

1.1确定调用关系

JSD-2204-Dubbo实现微服务调用-Seata-Day04_第1张图片

  • order模块调用stock模块的减少库存的功能

  • order模块调用cart模块的删除购物车的功能

  • business模块调用order新增订单的功能

要想实现Dubbo调用

必须按照Dubbo规定的配置和行业标准的结构来实现

Dubbo调用的好处是直接将要消费的目标(例如order模块中消费stock的方法)编写在当前消费者的业务逻辑层中,无需编写新的代码结构,开发流程不会因为Dubbo而变化

1.2修改stock模块

1.2.1创建csmall-stock-service项目

因为当前stock模块减少库存数业务是典型的生成者方法,需要被别的模块调用

那么其它模块就必须添加当前库存数减少的业务接口支持

为了减少添加这个给当前项目带来的负担

业界通用做法,是将生产者项目拆分为两个,

其中一个项目只有业务逻辑层接口

另一个项目包含正常的配置和所有业务代码

当消费者需要时只需要添加包含业务逻辑层接口的项目的依赖即可

创建csmall-stock-service项目

删除test\删除resources\删除SpringBoot启动类

csmall-stock升格为父项目,所以也要修改它的pom文件

Demo project for Spring Boot
pom

    csmall-stock-service

csmall-stock-service项目的pom文件添加最低要求的依赖



    4.0.0
    
        cn.tedu
        csmall-stock
        0.0.1-SNAPSHOT
         
    
    cn.tedu
    csmall-stock-service
    0.0.1-SNAPSHOT
    csmall-stock-service
    Demo project for Spring Boot
    
        
            cn.tedu
            csmall-commons
            0.0.1-SNAPSHOT
        
    


然后将原有的业务逻辑层接口IStockService复制到这个项目中即可

public interface IStockService {
    // 根据商品编号减少库存的方法
    void reduceCommodityCount(StockReduceCountDTO stockReduceCountDTO);
}

1.2.2创建csmall-stock-webapi项目

webapi项目包含stock项目原有的所有配置和业务代码

创建好项目之后删除test文件夹、删除application.properties文件

然后父子相认

最终csmall-stock项目的pom文件为



    4.0.0
    
        cn.tedu
        csmall
        0.0.1-SNAPSHOT
         
    
    cn.tedu
    csmall-stock
    0.0.1-SNAPSHOT
    csmall-stock
    Demo project for Spring Boot
    pom
    
        csmall-stock-service
        csmall-stock-webapi
    

csmall-stock-webapi项目的pom文件为

你可能感兴趣的:(dubbo,java,spring)