Spring boot配置Dubbo三种方式

摘要:
方法1:使用annotation在application.properties中导入dubbo-starter。使用@Service公开属性。使用@Reference引用服务。使用@EnableDubbo启用annotation Dubbo函数,或配置package scaning Dubbo.scan.base packages=com.atguigu.gmall1以启用annotations和package scan。只能配置一个。此方法可用于@Service和@Reference注释

方式一
使用注解的方式

导入dubbo-starter
在application.properties配置属性

使用@Service暴露服务
使用@Reference引用服务

使用@EnableDubbo开启注解Dubbo功能
或者配置包扫描

dubbo.scan.base-packages=com.atguigu.gmall
1
开启注解、包扫描,配置一个即可

这种方式
可以在@Service、@Reference注解中配置属性
属于类的配置,无法精确到方法的配置

方式二
使用dubbo的xml配置文件

导入dubbo-starter
使用@ImportResource导入dubbo的配置文件即可

@ImportResource(locations="classpath:provider.xml")
1
dubbo的配置文件,之前怎么写
现在还是怎么写,没有特殊要求

这种方式
可以做到方法的精确配置

方式三
使用注解API的方式

将每一个组件手动创建到容器中
让dubbo来扫描其他的组件

参考文档
http://dubbo.apache.org/zh-cn/docs/user/configuration/annotation.html

配置类示例

package com.atguigu.gmall.config;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.MethodConfig;
import com.alibaba.dubbo.config.MonitorConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.ProviderConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.ServiceConfig;
import com.atguigu.gmall.service.UserService;

@Configuration
public class MyDubboConfig {

    //<dubbo:application name="boot-user-service-provider"></dubbo:application>
    @Bean
    public ApplicationConfig applicationConfig() {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setName("boot-user-service-provider");
        return applicationConfig;
    }

    //<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
    @Bean
    public RegistryConfig registryConfig() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setProtocol("zookeeper");
        registryConfig.setAddress("127.0.0.1:2181");
        return registryConfig;
    }

    //<dubbo:protocol name="dubbo" port="20882"></dubbo:protocol>
    @Bean
    public ProtocolConfig protocolConfig() {
        ProtocolConfig protocolConfig = new ProtocolConfig();
        protocolConfig.setName("dubbo");
        protocolConfig.setPort(20882);
        return protocolConfig;
    }

    /**
     *<dubbo:service interface="com.atguigu.gmall.service.UserService"
        ref="userServiceImpl01" timeout="1000" version="1.0.0">
        <dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method>
    </dubbo:service>
     */
    @Bean
    public ServiceConfig<UserService> userServiceConfig(UserService userService){
        ServiceConfig<UserService> serviceConfig = new ServiceConfig<>();
        serviceConfig.setInterface(UserService.class);
        serviceConfig.setRef(userService);
        serviceConfig.setVersion("1.0.0");

        //配置每一个method的信息
        MethodConfig methodConfig = new MethodConfig();
        methodConfig.setName("getUserAddressList");
        methodConfig.setTimeout(1000);

        //将method的设置关联到service配置中
        List<MethodConfig> methods = new ArrayList<>();
        methods.add(methodConfig);
        serviceConfig.setMethods(methods);

        //ProviderConfig
        //MonitorConfig

        return serviceConfig;
    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
配置包扫描路径

可以,使用@DubboComponentScan注解
也可以,使用@EnableDubbo注解

@EnableDubbo注解
其实,里面配置的就是@DubboComponentScan注解


扫描包路径

@EnableDubbo(scanBasePackages="com.atguigu.gmall")
1
或者

@DubboComponentScan(basePackages ="com.atguigu.gmall")
1
生产者、消费者
使用@Service、@Reference注解配置

转自 https://blog.csdn.net/nangeali/article/details/82527039

免责声明:文章转载自《Spring boot配置Dubbo三种方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇网页自动登录,自动填充表单代码如何查看和修改Windows远程桌面端口下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Dubbo多注册中心配置

Dubbo常用的注册中心有Zookeeper、Nacos、Redis,目前项目中使用Zookeeper作为注册中心。service-xxx-dubbo.xml配置如下: <dubbo:application name="${dubbo.applicationName}" /> <dubbo:registry protocol="${dub...

buildroot使用介绍【转】

转自:https://www.cnblogs.com/arnoldlu/p/9553995.html buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可...

Spring Boot 核心配置文件 bootstrap &amp;amp; application

Spring Boot 核心配置文件 bootstrap & application 1、SpringBoot bootstrap配置文件不生效问题 2、bootstrap/ application 的区别 3、bootstrap/ application 的应用场景 4、高级使用场景 4.1 启动上下文 4.2 应用上下文层次结构 4.3...

【转】Kettle集群

本文转自:http://blog.csdn.net/dqswuyundong/article/details/5952009 Kettle集群 Kettle是一款开源的ETL工具,以其高效和可扩展性而闻名于业内。其高效的一个重要原因就是其多线程和集群功能。 Kettle的多线程采用的是一种流水线并发的机制,我们在另外的文章中专门有介绍。这里主要介绍的是ke...

RPC 超时设置 分析 转

出处:RPC 超时设置   上面这张监控图,对于服务端的研发同学来说再熟悉不过了。在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题。   尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结果。当服务超时发生时,研发同学往往要抽丝剥茧般去分析自身系统的性能以及依赖服务的性能,这也是为什么服务超时相对于服务出错和服...

html+js超大视频上传解决方案

需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制。 第一步: 前端修改 由于项目使用的是BJUI前端框架,并没有使用框架本身的文件上传控件,而使用的基于jQuery的Uploadify文件上传组件,在项目使用的jslib项目中找到了BJUI框架集...