• Spring Boot 和 Dubbo整合(注解方式配置)


    注:1. Dubbo的注解方式需要升级到 2.5.7 及以上版本

      2. 本工程结构为Spring Boot + Maven多模块的方式,其中:

        "xxx-api"模块为接口类定义模块,

        "xxx-service"为服务提供方模块;

        "xxx-web"为服务消费方模块

      

    一、服务提供商(xxx-service模块):

    1.提供方全局配置:

    @Configuration
    public class DubboConfiguration {
    
        @Bean
        public ApplicationConfig applicationConfig() {
            ApplicationConfig applicationConfig = new ApplicationConfig();
            applicationConfig.setName("provider-test");
            return applicationConfig;
        }
    
        @Bean
        public RegistryConfig registryConfig() {
            RegistryConfig registryConfig = new RegistryConfig();
            registryConfig.setAddress("zookeeper://127.0.0.1:2181");return registryConfig;
        }
    }

    2.service注解暴露服务:

    import com.alibaba.dubbo.config.annotation.Service;
    
    @Component //此注解不要忘记
    @Service(timeout = 5000) public class AnnotateServiceImpl implements AnnotateService { 
      // 具体实现方法
    }

    3.Spring Boot启动类添加服务扫描:

    @SpringBootApplication
    @DubboComponentScan(basePackages = "com.alibaba.dubbo.test.service.impl")
    public class ProviderTestApp {
        // 启动boot的main方法
    }

    二、服务消费方(xxx-web模块):

    1.消费方全局配置

    @Configuration
    public class DubboConfiguration {
    
        @Bean
        public ApplicationConfig applicationConfig() {
            ApplicationConfig applicationConfig = new ApplicationConfig();
            applicationConfig.setName("consumer-test");
            return applicationConfig;
        }
    
        @Bean
        public ConsumerConfig consumerConfig() {
            ConsumerConfig consumerConfig = new ConsumerConfig();
            consumerConfig.setTimeout(3000);
            return consumerConfig;
        }
    
        @Bean
        public RegistryConfig registryConfig() {
            RegistryConfig registryConfig = new RegistryConfig();
            registryConfig.setAddress("zookeeper://127.0.0.1:2181");
            registryConfig.setClient("curator");
            return registryConfig;
        }
    }

    2.消费方注解引用服务:

    public class AnnotationConsumeService {
    
        @com.alibaba.dubbo.config.annotation.Reference
        public AnnotateService annotateService;
        
        // ...
    }

    3.Spring Boot启动类添加服务扫描:

    @SpringBootApplication
    @DubboComponentScan(basePackages = "com.alibaba.dubbo.test.service")
    public class ConsumerTestApp {
        // ...
    }

    至此,即可完成了springboot和Dubbo的基本整合。

  • 相关阅读:
    边缘计算的下一场革命:1+1>2?
    深度学习黑箱:探秘人类编写的AI究竟在想什么
    Science:AI领域那么多引人注目的「进展」,竟是无用功
    什么是非结构化数据(unstructured data)?
    云计算的背水一战!核心技术决定未来!
    OpenAI最新论文:机器学习效率正在超越摩尔定律
    大数据和5G:这个交叉路口指向何方?
    实现一个边缘机器学习项目到底有多难?
    云计算模式:2021年的趋势是什么?
    当5G遇到新基建,边缘计算怎么发展?
  • 原文地址:https://www.cnblogs.com/malcolmfeng/p/9843307.html
Copyright © 2020-2023  润新知