springboot 整合dubbo遇到的几点坑

1.版本兼容问题

      如下图所示,其中的 spring-boot-starter-dubbo 是一个比较旧的1.0.0版本,在一开始的时候,spring-boot-starter-parent使用的是默认的2.1.2.RELEASE版本,这个版本导致了和dubbo的不兼容问题。造成的结果就是运行不会报错,但是不会启动ZkClient ,在dubbo控制台也不会找到服务的发布者和消费者。所以spring-boot-starter-parent换成低版本的1.5.1.RELEASE保证了兼容性

springboot 整合dubbo遇到的几点坑_第1张图片springboot 整合dubbo遇到的几点坑_第2张图片

2.扫描包(spring.dubbo.scan)的配置问题

    如果扫描包路径配置的不对,会造成在启动时找不到类等空指针异常

  (ps:建议不要把生产者和消费者的扫描包路径设置成一样的。

      开始的时候我将消费者和服务生产者的目录结构设置的完全一样,造成的结果就是这两个扫描包路径是一样的。这会造成导包失败的结果。而且会扫描不到生产者的路径)

     服务的消费者的扫描包路径应该配置成消费该服务的类的包名

springboot 整合dubbo遇到的几点坑_第3张图片

服务的发布者的扫描包路径应该配置到服务暴露的接口包名,同时,该接口对应的实体类建议也放在这个包的子目录下面

springboot 整合dubbo遇到的几点坑_第4张图片

3.打包插件问题

 发布服务的生产者建议使用下面的maven插件打包,不然可能会在消费者调用该jar包的时候找不到相应的类,造成导包失败。

  
        
        
            maven-compiler-plugin
            2.3.2
            
                1.8
                1.8
            
        
        
    

下面的这个打包插件就会把BOOT-INF类似于这样的安全的文件夹下面,使用jar包import 包 是不会成功的。所以在服务的生产者是不要使用这个maven插件了


        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

 

你可能感兴趣的:(springboot 整合dubbo遇到的几点坑)