• 【微服务】Day04


    Dubbo实现微服务调用

    确定调用结构

    • order模块调用stock模块的减少库存的功能
    • order模块调用cart模块的删除购物车的功能
    • business模块调用order新增订单的功能

    要想实现Dubbo调用

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

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

    修改stock模块

    创建csmall-stock-service项目

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

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

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

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

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

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

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

    创建csmall-stock-service项目

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

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

    <description>Demo project for Spring Bootdescription>
    <packaging>pompackaging>
    <modules>
        <module>csmall-stock-servicemodule>
    modules>
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0modelVersion>
        <parent>
            <groupId>cn.tedugroupId>
            <artifactId>csmall-stockartifactId>
            <version>0.0.1-SNAPSHOTversion>
            <relativePath/> 
        parent>
        <groupId>cn.tedugroupId>
        <artifactId>csmall-stock-serviceartifactId>
        <version>0.0.1-SNAPSHOTversion>
        <name>csmall-stock-servicename>
        <description>Demo project for Spring Bootdescription>
        
        <dependencies>
            <dependency>
                <groupId>cn.tedugroupId>
                <artifactId>csmall-commonsartifactId>
                <version>0.0.1-SNAPSHOTversion>
            dependency>
        dependencies>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

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

    public interface IStockService {
       
    
        // 减少库存的业务逻辑层方法
        void reduceCommodityCount(StockReduceCountDTO stockReduceCountDTO);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    创建csmall-stock-webapi项目

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

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

    然后父子相认

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

    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0modelVersion>
        <parent>
            <groupId>cn.tedugroupId>
            <artifactId>csmallartifactId>
            <version>0.0.1-SNAPSHOTversion>
            <relativePath/> 
        parent>
        <groupId>cn.tedu
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    操作系统4小时速成:文件管理,文件结构,属性,基本操作,逻辑有无结构,目录结构,文件系统
    百科词条信息太陈旧,如何更新维护百度百科词条
    秋招春招,网申在线测评中的智力测试
    C++ -- 学习系列 std::array 容器
    CleanMyMacX.dmg4.11版最新Mac电脑智能清理软件
    软件测试和软件开发之间的关系及模型
    3.6 样式绑定
    搜索店铺列表API 返回值说明
    Compose Multiplatform 正式版将于年内发布
    【Unity】Unity坑的集锦之RenderTexture打包黑屏
  • 原文地址:https://blog.csdn.net/shortcutsuccess/article/details/127130748