`

dubbo http webservice 服务学习笔记【原创】

阅读更多
学习了 dubbo rest服务之后,再使用dubbo http协议,就非常简单了,只要将服务的暴露协议改为http即可,不需要根据jax-rs规范,引入@Path等一堆annotation。
1. dubbo 配置文件
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:application name="dubborest-webapp" owner="zhenggm" organization="zjport"/>

    <dubbo:registry address="zookeeper://192.168.3.140:2181"/>

    <!--uncomment this if you want to test dubbo's monitor-->
    <!--<dubbo:monitor protocol="registry"/>-->

    <!-- here we demonstrate both annotation-based and xml-based configs -->
    <dubbo:annotation package="cn.gov.zjport.dubborest.service" />

    <!-- use tomcat server -->
    <dubbo:protocol name="rest" port="7056" contextpath="dubborest-webapp" server="servlet"
                    extension="com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter"/>

	<dubbo:service interface="cn.gov.zjport.dubborest.service.rest.RestDemoService" ref="restDemoService"  protocol="rest"  timeout="2000" connections="100" validation="true"/>
	
	<dubbo:service interface="cn.gov.zjport.dubborest.service.http.HttpDemoService" ref="httpDemoService"  protocol="http"  timeout="2000" connections="100" validation="true"/>
</beans>

这个文件是在前面练习的dubbo rest服务基础上增加的,只要增加
<dubbo:service interface="cn.gov.zjport.dubborest.service.http.HttpDemoService" ref="httpDemoService"  protocol="http"  timeout="2000" connections="100" validation="true"/>
即完成服务的发布。
注意:如果以下这一行
<dubbo:protocol name="rest" port="7056" contextpath="dubborest-webapp" server="servlet"
                    extension="com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter"/>
如果将name改为http, 那么会提示nullpoint的错误,是配置文件中另外一个restDemoService采用rest方式调用的原因造成。

2.接口类
package cn.gov.zjport.dubborest.service.http;

import cn.gov.zjport.dubborest.pojo.User;

public interface HttpDemoService {

	public User execute(User user);
}

3.实现类
package cn.gov.zjport.dubborest.service.http.impl;

import org.springframework.stereotype.Service;

import cn.gov.zjport.dubborest.pojo.User;
import cn.gov.zjport.dubborest.service.http.HttpDemoService;

@Service("httpDemoService")
public class HttpDemoServiceImpl implements HttpDemoService{
	
	public User execute(User user){
		user.setName(user.getName()+",hello");
		return user;
	}
}

4.客户端dubbo配置
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:application name="dubborest-webapp" owner="zhenggm" organization="zjport"/>

    <dubbo:registry address="zookeeper://192.168.3.140:2181"/>

    <!--uncomment this if you want to test dubbo's monitor-->
    <!--<dubbo:monitor protocol="registry"/>-->

    <!-- here we demonstrate both annotation-based and xml-based configs -->
    <dubbo:annotation package="cn.gov.zjport.dubborest.service" />

    <!-- use tomcat server -->
    <dubbo:protocol name="rest" port="7056" contextpath="dubborest-webapp" server="servlet"
                    extension="com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter"/>

	<dubbo:service interface="cn.gov.zjport.dubborest.service.rest.RestDemoService" ref="restDemoService"  protocol="rest"  timeout="2000" connections="100" validation="true"/>
	
	<dubbo:service interface="cn.gov.zjport.dubborest.service.http.HttpDemoService" ref="httpDemoService"  protocol="http"  timeout="2000" connections="100" validation="true"/>
</beans>
也是基于dubbo rest客户端配置修改的,增加了最后一行服务调用
5. 调用代码
System.out.println(httpDemoService.execute(user).getName());


6. 如果采用webservice协议暴露,只要将
<dubbo:service interface="cn.gov.zjport.dubborest.service.http.HttpDemoService" ref="httpDemoService"  protocol="http"  timeout="2000" connections="100" validation="true"/>
中的protocol="http"改为protocol="webservice"即可,其他调用代码如http保持不变。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    基于Dubbo+Zookeeper实现webservice

    本篇将详细讲解如何利用Dubbo结合Zookeeper来实现Web服务(webservice)。 首先,我们需要理解Dubbo的核心功能。Dubbo提供服务注册、服务发现、负载均衡、容错机制、调用链跟踪等特性,旨在提高微服务架构中的服务...

    Dubbo之《尚硅谷》学习笔记.md

    Dubbo之《尚硅谷》学习笔记

    dubbo学习笔记.pdf

    【Dubbo学习笔记】 Dubbo是一款高性能、轻量级的Java RPC框架,它旨在提供面向接口的远程方法调用、智能容错与负载均衡、服务自动注册与发现等核心功能,帮助开发者构建分布式服务架构。以下是对Dubbo基础知识、...

    dubbo学习笔记

    3. **自动发现**:Dubbo通过注册中心(如Zookeeper、Eureka等)实现服务提供者和消费者之间的动态服务发现,服务消费者无需硬编码服务提供者的地址,只需要知道服务接口,即可找到并调用服务。 【Dubbo能做什么】 ...

    Dubbo入门案例和项目源码

    3. `dubbo-webservice-impl`:这里应该是服务的实现代码,实现了`dubbo-webservice`中定义的接口。服务提供者会加载这些实现,当服务被调用时,这些实现会被执行。 四、学习和实践 对于初学者来说,可以通过以下...

    dubbo学习文档汇总

    通过这些文档的学习,你将能够理解Dubbo如何实现服务间的透明调用,掌握如何利用Dubbo进行服务治理,以及如何根据项目需求进行服务拆分和框架扩展。同时,你也能够了解到在实际项目中如何优化网络通讯,提高系统的...

    dubbo学习笔记.doc

    dubbo学习笔记.doc

    dubbo学习例题代码资源

    - **协议(Protocol)**: 服务交互的通信协议,如Dubbo默认的dubbo协议,HTTP,REST等。 - **监控中心(Monitor)**: 统计服务的调用次数、调用时间、失败比例等,用于故障排查和性能优化。 2. **Zookeeper在...

    dubbo入门学习框架源码

    通过深入学习和实践Dubbo源码,开发者不仅可以更好地理解Dubbo的工作原理,还能在实际项目中灵活运用,解决各种复杂的分布式服务问题。Dubbo的源码阅读也是一个不断提升自身技术深度的过程,有助于成长为更优秀的...

    dubbo-api服务

    "dubbo-api服务"就是这样的一个组件,它是基于阿里巴巴开源的Dubbo框架构建的服务器端接口服务。Dubbo是一个高性能、轻量级的Java远程服务调用框架,它使得服务提供者和服务消费者之间能够高效地进行通信。 首先,...

    Dubbo阅读笔记

    【Dubbo阅读笔记】 在深入理解Dubbo框架的过程中,我们首先需要了解其核心概念和服务模型。Dubbo是一款高性能、轻量级的Java RPC框架,它致力于简化分布式服务开发,为服务提供者(Provider)和服务消费者...

    基于zookeeper 监控dubbo provider 下线,提供dubbo 服务下线 邮箱预警

    `Dubbo` 是一款高性能、轻量级的Java服务框架,而`Zookeeper` 则是Apache的一个分布式协调服务,常用于服务治理、配置管理等领域。本项目结合两者,实现了一个针对`Dubbo`服务提供者(`Provider`)下线的监控系统,并...

    dubbo本地测试服务

    在IT行业中,Dubbo是一个广泛使用的高性能Java RPC框架,它使得服务间的调用变得简单而高效。本主题聚焦于“dubbo本地测试服务”,旨在帮助开发者在本地环境中进行服务提供者连接、数据发送测试以及接口调试,从而...

    Dubbo 分布式服务架构

    Dubbo分布式服务架构,对于研究大型Web服务器的并发技术的同学们有帮助。

    dubbo注册中心服务ip和实际服务提供者ip不一致问题

    dubbo注册中心服务ip和实际服务提供者ip不一致问题 网上收集的资料

    基于dubbo实现的服务发布与订阅demo

    总结来说,这个基于dubbo和zookeeper的demo提供了一个实际操作的服务发布与订阅场景,对于学习和理解微服务架构中的服务治理有极大的帮助。通过下载、运行和分析这个项目,开发者可以深入理解dubbo和zookeeper在实际...

    Apache Dubbo:Dubbo服务治理:服务熔断与超时重试

    ### Apache Dubbo:服务熔断与超时重试 #### 一、服务熔断基础 ##### 1.1 服务熔断的概念 服务熔断,作为一种重要的服务稳定性保障措施,在分布式系统中扮演着至关重要的角色。它的工作原理是,当某个服务节点...

    dubbo 分布式服务框架 开发者学习文档 PDF格式

    《Dubbo分布式服务框架开发者学习文档》是一份深入解析Dubbo技术体系的重要资料,它涵盖了Dubbo的核心功能和实现机制,对于理解并掌握这个流行的Java分布式服务框架具有极高的价值。Dubbo,作为阿里巴巴开源的一款高...

    dubbo介绍与搭建学习hahaha

    【Dubbo介绍与搭建学习】 Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java服务治理框架,它致力于提供一种简单、高效的服务发现、服务调用、服务治理以及监控的能力,帮助开发者构建分布式系统。Dubbo的核心功能...

Global site tag (gtag.js) - Google Analytics