Dubbo五消费Dubbo服务

  • 第三章讲了服务的的发布,相当于服务的生成,有生产就要有消费,接下来我们讲服务的消费。消费其实就是一个远程调用服务的过程。

  • 参考官方代码,我们新建一个项目来实现服务的消费。

  • pom:去掉官方一些用不上的。

    com.alibaba dubbo 2.6.0 com.101tec zkclient 0.10 org.apache.curator curator-framework 4.0.1 com.alibaba fastjson 1.2.46 log4j log4j 1.2.17 org.slf4j slf4j-api 1.7.25 org.apache.commons commons-lang3 3.4 io.netty netty-all 4.0.35.Final
  • 配置文件:从"D:\ideaProjects\dubbo-dubbo-2.6.0\dubbo-demo\dubbo-demo-consumer\src\main\resources\META-INF\spring\dubbo-demo-consumer.xml"拷一份配置文件到/resources下。

    <?xml version="1.0" encoding="UTF-8"?>

      <!-- 消费方应用名称,用于计算依赖关系 -->
      <dubbo:application name="demo-consumer"/>
    
      <!-- 使用zookeeper注册中心注册服务 -->
      <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    
      <!-- 生成远程服务代理,到时候调用其他项目的bean就像调用自己的bean一样。
       这里我们要用到的bean是my-dubbo-demo-provider的一个接口,
       id:自定义,
       check属性:true,启动时扫描是否存在目标接口,不存在则报错,false,调用时再扫描
       interface:与提供方暴露的接口路径一致-->
      <dubbo:reference id="demoService" check="false"
                       interface="com.haien.service.DemoProviderService"/>
    
  • 记得第三章发布服务时暴露的接口是这个:接口路径与上面一致。

    <dubbo:service interface=“com.haien.service.DemoProviderService”
    ref=“demoProviderService” />

  • 然后我们消费方这边需要真的写一个接口来接收这个远程接口,我们可以直接把提供方的接口文件拷贝过来,不过这样好像代码重复了,没事,以后我们再实现公共抽取。

    public interface DemoProviderService {

      public String sayHello(String name);
    

    }

  • 然后写一个测试类来调用远程接口:

    public class ConsumerTest {
    public static void main(String[] args) {
    ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(
    new String[]{“dubbo-demo-consumer.xml”});
    context.start();

          //bean名和dubbo-demo-consumer.xml->dubbo:reference的id一致
          DemoProviderService demoProviderService=
                  (DemoProviderService)context.getBean("demoProviderService");
          String result=demoProviderService.sayHello("你好");
          System.out.println("远程调用的结果:"+result);
          
          try {
              System.in.read();
          } catch (IOException e) {
              e.printStackTrace();
          }
      
          context.close();
      }
    

    }

  • 运行,运行之前先把服务项目启动了,发布了服务这边才调用得到。

  • 结果:能正确执行服务方接口的方法。

  • 然后登录控制台我们可以看到服务也发布了,消费方也有了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值