当前位置 博文首页 > u011767319的博客:springboot+nacos+duboo(使用的是spring clo

    u011767319的博客:springboot+nacos+duboo(使用的是spring clo

    作者:[db:作者] 时间:2021-09-22 12:52

    安装 nacos服务注册中心(本人使用的是1.2.1)

    本人的下载地址nacos1.2.1.zip
    启动的话,win 使用 startup.cmd的文件,双击启动

    maven 导包

    注意 本人已经被坑过了,让我烦躁了好久
    建议是使用duboo 2.7.5(2.7.6 版本有问题,需要定义组和版本号,不然@Reference 注入会失败)

    <properties>
    	<nacos.version>2.2.1.RELEASE</nacos.version>
         <dubbo.version>2.7.5</dubbo.version>
    </properties>
    
    <dependencies>
    	<!--nacos-->
         <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
              <version>${nacos.version}</version>
          </dependency>
          <!--dubbo start-->
          <dependency>
              <groupId>org.apache.dubbo</groupId>
              <artifactId>dubbo-spring-boot-starter</artifactId>
              <version>${dubbo.version}</version>
          </dependency>
          <!--dubbo end-->
    </dependencies>
    

    yml配置

    server:
      port: 8001
    spring:
      application:
        name: auth
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
    dubbo:
      application:
        version: 1.0.0
        name: ${spring.application.name}
      registry:
        address: nacos://${spring.cloud.nacos.discovery.server-addr}
      protocol:
        name: dubbo
        port: 20881 #消费者可以不用被发现可以不用配置端口,如果需要就改一下端口
      scan:
        base-packages: com.ronrun.*.service #扫包
     
    

    定义一个公有接口

    建议:定义一个公有包 使用maven 方式引入公有包就可以使用了

    public interface ICsService {
        int add(int a);
    }
    

    生产者

    有配置扫包应该可以不用添加这个注解,本人怕出问题没有尝试,一直有加上这个注解@EnableDubbo

    @EnableDubbo
    @SpringBootApplication
    public class AuthApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(AuthApplication.class, args);
        }
    
    }
    
    
    
    import com.alibaba.dubbo.config.annotation.Service; //注意使用duboo导包
    import com.ronrun.service.ICsService ;
     
    @Service
    public class CsServiceImpl implements ICsService {
     	private int zhi = 1000;
     	
        @Override
        public int add(int a) {
     		return zhi + a;
        }
    }
    

    消费者

    有配置扫包应该可以不用添加这个注解,本人怕出问题没有尝试,一直有加上这个注解@EnableDubbo

    @EnableDubbo
    @SpringBootApplication
    public class AuthApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(AuthApplication.class, args);
        }
    
    }
    
    
    @RestController
    public class CsController {
    
        @Reference // 该注解是dubbo提供的
        private ICsService csService ;
    
        @GetMapping("/cs")
        public String cs(int a) {
            return "变化的值"+csService.add(a);
        }
    }
    

    简单粗暴的配置,欢迎使用

    解决依赖服务没有启动时,阻止spring初始化的情况

    启动时检查(check)

    默认情况下dubbo是开启自动检查的,即当项目启动时会自动检查其依赖的服务是否开启,如果没开是会阻止spring的初始化的,即check=true;我们可以将check置为false来关闭启动时检查,如我们在测试或者对其他服务没有依赖的时候可以关闭检查;在springboot中我们可以进行如下配置来关闭启动时检查:

    1、关闭某个服务的启动检查
    在引用该服务的@Reference注解上添加check=false,即@Reference(check = false)
    2、关闭所有服务的启动时检查
    在application.properties中添加dubbo.consumer.check=false

    cs
    下一篇:没有了