Dubbo服务发布调用简易实例

1.在IDEA 中 创建maven 工程 dubbo-server 如下图:
在这里插入图片描述
下一步
在这里插入图片描述
next 直到创建完成
2、创建 模块 sever-api 和 server-provider
在工程上 右键 新建 Module
在这里插入图片描述
next
在这里插入图片描述
一直next 直到创建完成

工程名上右键 新建 Module
在这里插入图片描述
下一步
在这里插入图片描述
next 直到创建完成

这样完成maven工程创建 一个 父工程dubbo-server 和 两个子模块 server-api server-provider

3、server-api 中定义一个接口 IHello ,该接口就是我们要发布的服务 。如下
在这里插入图片描述

server-provider pom.xml 中增加对 server-api 的依赖, 如下:

    <dependency>
        <groupId>com.test.dubbo</groupId>
        <artifactId>server-api</artifactId>
        <version>1.0-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>

server-provider 中增加 IHello的实现类 如下:
在这里插入图片描述

4、provider 增加对 dubbo、zookeeper、日志 的依赖,pom.xml 中增加 如下依赖

 <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.5.6</version>
    </dependency>
    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>com.101tec</groupId>
        <artifactId>zkclient</artifactId>
        <version>0.10</version>
    </dependency>
    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.10</version>
    </dependency>

5、server-provider 中增加如下目录和配置文件 dubbo.xml 为服务配置文件 log4j.properties 为日志配置文件
dubbo.xml中需要配置 配置中心 这里需要提前准备一个 zookeeper 的环境
在这里插入图片描述
增加启动类 Bootstrap 加载配置文件并启动服务
在这里插入图片描述

运行代码 日志中可以看到我们发布的服务 以及在 zookeeper·中注册的服务信息 如下图
在这里插入图片描述
在这里插入图片描述

6、服务的调用
IDEA 新建工程 dubbo-client 。创建方式同 dubbo-server. (参考第一步 client 工程下不需要建子模块)
pom.xml中增加 对 server-api、zookeeper 和 dubbo 的依赖 如下

<dependency>
      <groupId>com.test.dubbo</groupId>
      <artifactId>server-api</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.5.6</version>
    </dependency>
    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <version>3.4.10</version>
    </dependency>
    <dependency>
      <groupId>com.github.sgroschupf</groupId>
      <artifactId>zkclient</artifactId>
      <version>0.1</version>
    </dependency>

增加 服务配置文件dubbo-client.xml 如下:
在这里插入图片描述
声明服务的时候可以通过registry 属性 指定 从某个配置中心中获取接口地址,也可以 不配置配置中心 通过url属性直接指定接口地址如下:

<!--不使用注册中心是可以直接配置url 进行调用
    <dubbo:reference id="helloService"
                     interface="com.test.dubbo.IHello"
                     url = "dubbo://192.168.26.2:20880/com.test.dubbo.IHello"/>-->

增加调用类APP 如下
在这里插入图片描述

执行代码 调用成功,如下:
在这里插入图片描述

7、服务发布使用版本号
在发布服务时可能存在同时需要多个版本的情况,这个时候只需发布、调用接口时 增加版本信息 就可以实现多版本 服务的发布和调用。
我们在server-provider中增加一个实现类 HelloImplV2 如下
在这里插入图片描述
配置文件增加V2版本的接口声明 然后运行 Bootstrap 注册并启动服务
在这里插入图片描述
dubbo-client 工程中 dubbo-client.xml 中可以通过version 属性指明要调用的版本 如下
在这里插入图片描述
修改完运行 App.main()执行的是版本2 的实现如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

catch that elf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值