【Soul源码阅读系列(五)】Apache Dubbo插件

今天体验的是Soulapache dubbo插件,如果你的业务系统是由apache dubbo构建而成的,又需要网关的支持,那么可以直接使用Soul接入。

Apache Dubbo 插件的案例演示

Soul官方在soul-examples模块提供了测试样例,其中的soul-examples-apache-dubbo-service模块演示的是Soul网关对apache dubbo系统的支持。模块目录及配置信息如下:

soul.dubbo是有关Souldubbo插件支持的配置,adminUrlSoul的后台管理地址,contextPath是业务系统的请求路径。

在项目的pom文件中引入soul相关依赖,当前版本是2.2.1

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

在需要被代理的接口上使用注解@SoulDubboClient@SoulDubboClient注解会把当前接口注册到soul网关中。使用方式如下:

如果其他接口也想被网关代理,使用方式是一样的。在@SoulDubboClient注解中,指定path即可。

运行TestApacheDubboApplication,启动soul-examples-apache-dubbo-service项目。Dubbo是需要注册中心的,可以使用zookeeper或者nacos。本文使用的是zookeeper,启动也很简单。在官网下载,然后解压,直接运行zkServer.cmd就可以运行。

参考之前的文章,启动Soul AdminSoul BootstrapSoul的后台界面如下:

如果dubbo插件没有开启,那就需要手动去开启。

Soul Bootstrap中,加入相关依赖:

 <!--soul  apache dubbo plugin start-->
        <dependency>
            <groupId>org.dromara</groupId>
            <artifactId>soul-spring-boot-starter-plugin-apache-dubbo</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.5</version>
        </dependency>
        <!-- Dubbo zookeeper registry dependency start -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-client</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.0.1</version>
        </dependency>
        <!-- Dubbo zookeeper registry dependency end -->
        <!-- soul  apache dubbo plugin end-->

三个系统(本身的业务系统(这里就是soul-examples-apache-dubbo-service),Soul后台管理系统Soul AdminSoul核心网关Soul Bootstrap)都启动成功后,就可以进行测试了。

在这里插入图片描述

	 //实际dubbo提供的服务
    @SoulDubboClient(path = "/findAll", desc = "Get all data")
    public DubboTest findAll() {
   
        DubboTest dubboTest = new DubboTest();
        dubboTest.setName("hello world Soul Apache, findAll");
        dubboTest.setId(String.valueOf(new Random().nextInt()));
        return dubboTest;
    }

上面向网关发起了一个请求http://localhost:9195/dubbo/findAll,实际被调用的是dubbo的服务。

另外也可以发起一个POST请求,下面向网关发起了一个请求http://localhost:9195/dubbo/insert

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值