spring-cloud-dubbo基本使用

创建模块
api模块使用mave quick-start 构建:
spring-cloud-dubbo基本使用_第1张图片

,provider模块使用 下面方式创建:spring-cloud-dubbo基本使用_第2张图片
spring-cloud-dubbo基本使用_第3张图片
点击下一步,会看到一些基于阿里的cloud的依赖:

spring-cloud-dubbo基本使用_第4张图片
上面这个是基于阿里云的,下面的Spring Cloud Alibaba是开源的组件依赖:
spring-cloud-dubbo基本使用_第5张图片
这里都不选择,直接next, 后续手动集成,注意,上面spirngboot版本是2.3.7

接下来再使用spring initializr 创建一个consumer模块:
spring-cloud-dubbo基本使用_第6张图片
spring-cloud-dubbo基本使用_第7张图片

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>

子模块里面的 .mvn mvnw mvww.cmd都删除
spring-cloud-dubbo基本使用_第8张图片
然后在三个子模块中指定父pom:

  <parent>
        <groupId>com.lchtest.springcloud.dubbogroupId>
        <artifactId>spring-cloud-dubbo-exampleartifactId>
        <version>1.0-SNAPSHOTversion>
    parent>

API模块定义接口,并install到本地:
spring-cloud-dubbo基本使用_第9张图片
服务提供端和消费端引入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>

然后编写服务提供端代码,实现api模块定义的接口,并使用dubbo的@Service注解来发布一个dubbo服务
spring-cloud-dubbo基本使用_第10张图片
然后启动本地nacos服务(nacos需要单独部署,这里使用windows单机版本的nacos服务)
spring-cloud-dubbo基本使用_第11张图片
服务提供者端 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

启动类上开启注册中心:
spring-cloud-dubbo基本使用_第12张图片
服务消费端:
pom再增加一个web依赖

       
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>

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

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

消费端代码,这里是要通过dubbo来产生一个provider端提供的服务的接口代理:
spring-cloud-dubbo基本使用_第13张图片
启动消费端并调用接口,可以看到它调用dubbo service获得了provider端返回的数据:
spring-cloud-dubbo基本使用_第14张图片
注册中心实例如下:
spring-cloud-dubbo基本使用_第15张图片
打上断点再次调用say接口,可以看到helloService就是一个代理对象:
spring-cloud-dubbo基本使用_第16张图片

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

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