Dubbo使用Properties文件配置(2.7.1)

5 篇文章 0 订阅
3 篇文章 0 订阅

源码地址:https://github.com/yuxiao97/dubbo-demo

在Dubbo版本的2.6.x版本中,配置Dubbo基本上全部使用XML的方式配置,这也是Dubbo最早支持的配置方式,包括暴露服务和引用服务全是XML的方式,后面添加了暴露服务和引用服务可以通过注解的方式来使用,但其注册地址和协议等基本的配置还是没有发生变化,依然通过XML的方式配置,再后来Dubbo支持了spring-boot-starter的方式,于是就有了dubbo-spring-boot-starter,于是也就可以通过Properties来配置了。

实验环境:IDEA + Spring-Boot(2.1.4.release) + Dubbo(2.7.1) + Maven + zookeeper(3.4.14)

先建立一个Spring-Boot的工程,然后加入Dubbo必要的依赖,Dubbo的依赖如下:

        <!-- Dubbo dependency -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>${dubbo.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>${dubbo.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper</artifactId>
            <version>${dubbo.version}</version>
            <type>pom</type>
        </dependency>

 

⚠️排除Spring依赖时必须排除spring-context,而非官方文件中的spring,否则和Spring-Boot存在冲突,无法启动应用!

基本配置

此时,在properties文件加入配置Dubbo的相关配置,输入dubbo后,就会出现相关提示,dubbo.application.name是必须要配置,否则无法启动。其它的基本配置就是注册中心和使用那种协议提供服务。注册中心是必须要配置的,提供服务的协议则可以不配置,默认使用dubbo协议和20880端口,配置大致如下:

dubbo.registry.address=zookeeper://localhost:2181

修改默认协议和端口,如下,配置完毕后,启动即可。

dubbo.protocol.name=dubbo

dubbo.protocol.port=20880

 

REST服务的配置

需要在properties文件中配置dubbo.protocol.name=rest,此外还需要添加rest需要的依赖包,依赖包如下,然后在提供服务的接口或实现类上添加@Path注解,随后可直接通过浏览器来访问。

        <!-- Dubbo REST dependency start -->
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
        </dependency>

        <!-- jetty -->
        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty</artifactId>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util</artifactId>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
        </dependency>
        <!-- Dubbo REST dependency end —>

 

多服务协议的配置

在XML方式的配置中,我们可以通过写多个<dubbo:protocol name=“” />的方式来配置多协议,那么properties如何配置呢?配置如下,注意红色字体的dubbo,该名称为需要暴露的协议

dubbo.protocols.dubbo.name=dubbo

dubbo.protocols.dubbo.port=20880

同时暴露rest的配置为:

dubbo.protocols.rest.name=rest

dubbo.protocols.rest.port=20881

此时需要在Dubbo的@Service注解配置需要暴露的协议,如果不配置,则暴露所有配置的协议,如果只暴露某个协议的服务,在@Service注解的protocol熟悉上注明即可。

消费端没有单独说明,源码地址:https://github.com/yuxiao97/dubbo-demo

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值