天天看点

dubbo服务提供与消费

  项目中用到了Dubbo,临时抱大腿,学习了dubbo的简单实用方法。现在就来总结一下dubbo如何提供服务,如何消费服务,并做了一个简单的demo作为参考。

  Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)

其核心部分包含:

1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。

2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。

3. 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

  摘自:http://www.cnblogs.com/Javame/p/3632473.html

<a></a>

  实现dubbo服务的接口

  dubbo服务提供者配置:classpath:dubbo-provider-example.xml

  由于是提供者作为一个web项目,所以web.xml文件如下。

  dubbo服务消费者测试类

  dubbo服务消费者配置:dubbo-consumer-example.xml

  首先启动dubbo生产者,然后运行消费者的测试类,可以看到控制台中有如下信息输出:

  1.如果一个工程中有dubbo消费者,也有dubbo生产者,则&lt;dubbo:application name="hjz-dubbo" owner="hjzgg"/&gt;配置只有一个就可以了。

  2.测试环境一般采用dubbo直联方式,生产环境一般将dubbo服务注册到zookeeper。

  3.配置文件中 dubbo:reference id="dubboServiceTest"  和 dubbo:service ref="dubboServiceTest", id和ref的对应的value要一致。

  4.配置文件中 dubbo:service ref="dubboServiceTest",ref对应的value是服务的名称,例如@Service("dubboServiceTest")。

  5.如果抛出下面异常,

   dubbo服务提供者的配置文件中加上下面红色的代码。

  注:测试demo工程是个maven工程,eclipse可以通过 Check out as Maven Project from SCM 来导入即可,URL:https://github.com/hjzgg/dubbo_demo.git

本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/5907035.html,如需转载请自行联系原作者