Nacos + Sentinel + Dubbo 三剑合璧

        改造“自动投递微服务”和“简历微服务”,删除OpenFeign 和 Ribbon,使用DubboRPC 和 Dubbo LB

  首先,需要删除或者注释掉父工程中的热部署依赖


1、服务提供者工程改造

(1)提取dubbo服务接口工程,lagou-service-dubbo-api

  接口类

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

(2)改造提供者工程(简历微服务)

  • pom文件添加spring cloud + dubbo整合的依赖,同时添加dubbo服务接口工程依赖
     
            
                com.alibaba.cloud
                spring-cloud-starter-dubbo
            
            
                com.alibaba.csp
                sentinel-apache-dubbo-adapter
            
            
            
                com.lagou.edu
                lagou-service-dubbo-api
                1.0-SNAPSHOT
            
  •  删除原有ResumeService接口,引入dubbo服务接口工程中的ResumeService接口,适当调整代码,在service的实现类上添加dubbo的@Service注解

Nacos + Sentinel + Dubbo 三剑合璧_第1张图片

  • application.yml或者bootstrap.yml配置文件中添加dubbo配置 

    dubbo:
            scan:

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

另外增加一项配置

Nacos + Sentinel + Dubbo 三剑合璧_第2张图片

  • 运行发布之后,会发现Nacos控制台已经有了服务注册信息,从元数据中可以看出,是dubbo注册上来的 

Nacos + Sentinel + Dubbo 三剑合璧_第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-definition-overriding=true

  • Controller代码改造,其他不变

Nacos + Sentinel + Dubbo 三剑合璧_第4张图片

  • 运行发布之后,同样会发现Nacos控制台已经有了服务注册信息
  • 测试:http://localhost:8099/autodeliver/checkState/1545132 (我新复制了一个工程,占用端口8099) 

Nacos + Sentinel + Dubbo 三剑合璧_第5张图片

全部代码:资源地址 

你可能感兴趣的:(SpringCloud,sentinel,dubbo,java-zookeeper,spring,cloud,spring)