改造“⾃动投递微服务”和“简历微服务”,删除OpenFeign 和 Ribbon,使⽤Dubbo RPC 和 Dubbo LB
⾸先,需要删除或者注释掉⽗⼯程中的热部署依赖

  1. <!--热部署-->
  2. <!--<dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-devtools</artifactId>
  5. <optional>true</optional>
  6. </dependency>
  7. -->

3.1 服务提供者⼯程改造

提取dubbo服务接⼝⼯程,lagou-service-dubbo-api
接⼝类

package com.lagou.edu.service;
public interface ResumeService {
 Integer findDefaultResumeByUserId(Long userId);
}

改造提供者⼯程(简历微服务)
pom⽂件添加spring cloud + dubbo整合的依赖,同时添加dubbo服务接⼝⼯程依赖

        <!--spring cloud+dubbo 依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-dubbo</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-apache-dubbo-adapter</artifactId>
        </dependency>
        <!--dubbo 服务接口依赖-->
        <dependency>
            <groupId>com.lagou.edu</groupId>
            <artifactId>lagou-service-dubbo-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

删除原有ResumeService接⼝,引⼊dubbo服务接⼝⼯程中的ResumeService接⼝,适当调
整代码,在service的实现类上添加dubbo的@Service注解
image.png
application.yml或者bootstrap.yml配置⽂件中添加dubbo配置

dubbo:
  scan:
    # dubbo 服务扫描基准包
    base-packages: com.lagou.edu.service.impl
  protocol:
    # dubbo 协议
    name: dubbo
    # dubbo 协议端口( -1 表示自增端口,从 20880 开始)
    port: -1
    host: 127.0.0.1
  registry:
    # 挂载到 Spring Cloud 的注册中心
    address: spring-cloud://localhost

另外增加⼀项配置
image.png
运⾏发布之后,会发现Nacos控制台已经有了服务注册信息,从元数据中可以看出,是dubbo注册上来的
image.png

3.2 服务消费者⼯程改造

接下来改造服务消费者⼯程—>⾃动投递微服务

  • pom.xml中删除OpenFeign相关内容
  • application.yml配置⽂件中删除和Feign、Ribbon相关的内容;代码中删除Feign客户端内容;
  • pom.xml添加内容和服务提供者⼀样
  • application.yml配置⽂件中添加dubbo相关内容
    dubbo:
    registry:
      # 挂载到 Spring Cloud 注册中心
      address: spring-cloud://localhost
    cloud:
      # 订阅服务提供方的应用列表,订阅多个服务提供者使用 "," 连接
      subscribed-services: lagou-service-resume
    
    同样,也配置下spring.main.allow-bean-defifinition-overriding=true
    Controller代码改造,其他不变
    image.png
    运⾏发布之后,同样会发现Nacos控制台已经有了服务注册信息
    测试:http://localhost:8099/autodeliver/checkState/1545132 (我新复制了⼀个⼯程,占⽤端
    ⼝8099)
    image.png**