spring boot 整合 Apache dubbo

spring boot 整合 Apache dubbo

网上有很多关于dubbo的搭建方式,但是有很多都不是官方的,而且配置方式都是五花八门的,使用的dubbo 也不是apache的。还不全,
反正我是搭建不起来的。

最后之后求助官方的文档,所以以下写的内容都是依赖于apache dubbo和apache dubbo-spring-boot-project的
具体的依赖jar包都是在文末

具体代码其实很简单,但是这个过程中会有一些坑,在此记录一下

刚才说了代码很简单无非就是给三个模块consumer、producer、api,api模块专门写接口,
producer模块实现api模块的接口,使用@Service注册这个接口,需要注意的是@Service是dubbo中的@Service而不是spring中的
consumer模块依赖于api中的接口,也就是调用api中的接口,需要使用@Reference指定注册的接口

具体代码补贴出来了,地址在文末,有兴趣的可以看看

provider

在application.properties中有如下配置,注明dubbo可以使用两种RPC 协议

dubbo.protocols.dubbo.name = dubbo
dubbo.protocols.dubbo.port = 20880
dubbo.protocols.rest.name = rest
dubbo.protocols.rest.port = 8091

producer模块中如果使用rest协议,那么就需要引入相关的jar包,包括两方面,一方面rest接口的,一方面是rest服务器,
rest接口依赖

        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>${resteasy_version}</version>
        </dependency>

dubbo.protocol.server 如果不配置使用的是jetty服务器,需要引入相关jar包

    <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>${jetty_version}</version>
        </dependency>

否则会报java.lang.NoClassDefFoundError: org/eclipse/jetty/util/log/StdErrLog 这个异常

dubbo.protocol.server=netty 则需要引入netty的jar包

    <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-netty4</artifactId>
            <version>${resteasy_version}</version>
        </dependency>

否则会报java.lang.NoClassDefFoundError: org/jboss/resteasy/plugins/server/netty/NettyJaxrsServer这个异常

dubbo.protocol.server=tomcat 则需要引入tomcat相关依赖,好吧,其实rest使用tomcat这种方式我是没有试成功,
如果Spring boot 也是用的是tomcat服务器,除非Spring boot使用的其他服务器才能成功启动

<properties>
    <tomcat_embed_version>9.0.22</tomcat_embed_version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值