Dubbo在springboot中的相关配置

Dubbo

一、安装

1、下载注册中心zookeeper并运行(资源下载)
在这里插入图片描述
2、下载dubbo,确保已经配置好maven环境,到dubbo下载的目录下运行下载好的jar,java -jar …jar
在这里插入图片描述

二、在spring中的配置

3、使用xml配置的provider(服务提供者)

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    <!--1、指定当前服务的名字-->
    <dubbo:application name="user-service-provider"></dubbo:application>
    <!--2、指定注册中心的位置-->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
    <!--3、指定通讯的规则-->
    <dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
    <!--4、暴露指向服务的真正实现对象-->
    <dubbo:service interface="com.myproject.service.UserService" ref="userService"></dubbo:service>
    <!--5、服务的实现-->
    <bean id="userService" class="com.myproject.service.impl.UserServiceImpl"></bean>
</beans>

5、使用xml配置的consumer(服务消费者/调用者)

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.2.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    <!--spring包扫描-->
    <context:component-scan base-package="com.myproject"></context:component-scan>
    <!--配置消费者/应用的名称-->
    <dubbo:application name="gamll-service-consumer"/>
    <!--配置注册中心的地址-->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <!--配置调用服务方的接口的位置-->
    <dubbo:reference id="userService" interface="com.myproject.service.UserService"/>
</beans>

6、通过上述provider以及consumer的配置就可以在不同项目中,实现对UserService接口的调用。

三、在SpringBoot中的配置文件application.properties中的配置

1、在provider中的配置

dubbo.application.name=user-provider
dubbo.registry.address=127.0.0.1:2181
dubbo.registry.protocol=zookeeper
dubbo.protocol.name=dubbo
dubbo.protocop.port=20880
dubbo.monitor.protocol=registry
#使用service注解暴露服务的实现
#使用EnableDubbo开启基于注解的dubbo配置
server.port=8001

2、在consumer中的配置

dubbo.application.name=user-consumer
dubbo.monitor.protocol=register
dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181
server.port=8002
#使用Reference调用远程对象

3、在调用方使用Reference注解调用服务方的接口
在这里插入图片描述
4、服务方使用com.alibaba.dubbo.config.annotation.Service注解(注意不是spring中的Service注解)暴露服务接口
在这里插入图片描述
5、在SpringBoot框架中配置也可使用xml方式,将配置的xml文件导入到resources目录下,在项目启动类…Application下添加注解

@ImportResource(locations = "classpath:文件在类路径下的位置")

6、使用配置类进行配置
服务提供者

@Configuration
public class DubboConfig {

    @Bean
    public ApplicationConfig applicationConfig() {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setName("user-provider");
        return applicationConfig;
    }

    @Bean
    public RegistryConfig registryConfig() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setProtocol("zookeeper");
        registryConfig.setAddress("127.0.0.1:2181");
        return registryConfig;
    }

    @Bean
    public ProtocolConfig protocolConfig() {
        ProtocolConfig protocolConfig = new ProtocolConfig();
        protocolConfig.setName("dubbo");
        protocolConfig.setPort(20880);
        return protocolConfig;
    }

    @Bean
    public ServiceConfig<UserService> userServiceServiceConfig(UserService userService) {
        ServiceConfig<UserService> serviceConfig = new ServiceConfig<>();
        //设置服务接口
        serviceConfig.setInterface(UserService.class);
        serviceConfig.setRef(userService);
        //设置超时时间
        serviceConfig.setTimeout(2000);
        //设置版本号
        serviceConfig.setVersion("1.0.0");
        //指定方法
        MethodConfig methodConfig = new MethodConfig();
        methodConfig.setName("getUserInfo");
        //方法设置超时时间
        methodConfig.setTimeout(1000);
        List<MethodConfig> list = new ArrayList<>();
        list.add(methodConfig);
        serviceConfig.setMethods(list);
        return serviceConfig;
    }
    //另外也可以设置MonitorConfig,同样是将组件加入到容器中
}

服务消费者

@Configuration
public class DubboConfig {
    @Bean
    public ApplicationConfig applicationConfig() {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setName("user-consumer");
        return applicationConfig;
    }

    @Bean
    public RegistryConfig registryConfig() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setProtocol("zookeeper");
        registryConfig.setAddress("127.0.0.1:2181");
        return registryConfig;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值