• spring-cloud-dubbo基本使用


    创建模块
    api模块使用mave quick-start 构建:
    在这里插入图片描述

    ,provider模块使用 下面方式创建:在这里插入图片描述
    在这里插入图片描述
    点击下一步,会看到一些基于阿里的cloud的依赖:

    在这里插入图片描述
    上面这个是基于阿里云的,下面的Spring Cloud Alibaba是开源的组件依赖:
    在这里插入图片描述
    这里都不选择,直接next, 后续手动集成,注意,上面spirngboot版本是2.3.7

    接下来再使用spring initializr 创建一个consumer模块:
    在这里插入图片描述
    在这里插入图片描述

    consuemr模块调用provider模块,api模块是两个模块公共的依赖,并将子模块中的dependencyManagement 和 properties挪到父pom中:

      <properties>
        <java.version>1.8java.version>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASEspring-boot.version>
      properties>
      
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-dependenciesartifactId>
            <version>${spring-boot.version}version>
            <type>pomtype>
            <scope>importscope>
          dependency>
        dependencies>
      dependencyManagement>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    子模块里面的 .mvn mvnw mvww.cmd都删除
    在这里插入图片描述
    然后在三个子模块中指定父pom:

      <parent>
            <groupId>com.lchtest.springcloud.dubbogroupId>
            <artifactId>spring-cloud-dubbo-exampleartifactId>
            <version>1.0-SNAPSHOTversion>
        parent>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    API模块定义接口,并install到本地:
    在这里插入图片描述
    服务提供端和消费端引入api依赖,dubbo依赖,nacos注册中心的依赖:

      
            <dependency>
                <groupId>com.lchtest.springcloud.dubbogroupId>
                <artifactId>spring-cloud-dubbo-sample-apiartifactId>
                <version>1.0-SNAPSHOTversion>
            dependency>
    
            
            <dependency>
                <groupId>com.alibaba.cloudgroupId>
                <artifactId>spring-cloud-starter-dubboartifactId>
                <version>2.2.1.RELEASEversion>
            dependency>
    
            
            <dependency>
                <groupId>com.alibaba.cloudgroupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
                <version>2.2.1.RELEASEversion>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    然后编写服务提供端代码,实现api模块定义的接口,并使用dubbo的@Service注解来发布一个dubbo服务
    在这里插入图片描述
    然后启动本地nacos服务(nacos需要单独部署,这里使用windows单机版本的nacos服务)
    在这里插入图片描述
    服务提供者端 dubbo服务发布配置和注册中心配置:

    # 应用名称
    spring.application.name=spring-cloud-dubbo-sample-provider
    # dubbo扫描包
    dubbo.scan.base-packages=com.lchtest.springcloud.dubbo.springclouddubbosampleprovider.services
    # dubbo发布服务的端口号
    dubbo.protocol.port=20880
    # dubbo发布服务使用的协议
    dubbo.protocol.name=dubbo
    # 注册中心地址 dubbo服务发布到这个地址上
    spring.cloud.nacos.discovery.server-addr=http://192.168.61.1:8848
    # Dubbo 消费端订阅服务端的应用名,多个服务提供者用逗号分隔
    dubbo.cloud.subscribed-services=spring-cloud-dubbo-sample-consumer
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    启动类上开启注册中心:
    在这里插入图片描述
    服务消费端:
    pom再增加一个web依赖

           
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webartifactId>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    服务消费端注册中心配置:

    # 应用名称
    spring.application.name=spring-cloud-dubbo-sample-consumer
    server.port=8080
    # 注册中心地址 dubbo服务发布到这个地址上
    spring.cloud.nacos.discovery.server-addr=http://192.168.61.1:8848
    
    • 1
    • 2
    • 3
    • 4
    • 5

    消费端代码,这里是要通过dubbo来产生一个provider端提供的服务的接口代理:
    在这里插入图片描述
    启动消费端并调用接口,可以看到它调用dubbo service获得了provider端返回的数据:
    在这里插入图片描述
    注册中心实例如下:
    在这里插入图片描述
    打上断点再次调用say接口,可以看到helloService就是一个代理对象:
    在这里插入图片描述

    本文代码: https://download.csdn.net/download/weixin_41300437/87139618

  • 相关阅读:
    边框大小和样式配合做出按钮点击效果
    在Ubuntu中批量创建用户
    Docker容器化部署企业级应用集群
    Flutter:CustomPaint与RenderObject自绘摘要
    2024年华为OD机试真题-电脑病毒感染-Python-OD统一考试(C卷)
    深度相机(3D相机)
    腾讯云TI平台持续升级,TI-ACC训练加速性能较原生框架提升超30%
    【计算机基础-二进制位运算】
    外包干了2个月,技术退步明显了...
    【无标题】
  • 原文地址:https://blog.csdn.net/weixin_41300437/article/details/127943390