当前位置:首页 > 后端开发 > dubbo的Rest调用

dubbo的Rest调用

7个月前 (05-22)54

概念

dubbo也支持rest的方式调用服务,比如说有个服务他没有集成dubbo,但是他也想调用你的provider,那怎么办?他就可以用rest协议去调用

代码地址

https://gitee.com/zjj19941/ZJJ_Dubbo.git 下的 rest 项目

代码案例

provider配置文件

重点配置是:dubbo.protocols.p1 和 dubbo.protocols.p2

spring.application.name=dubbo-provider-demo
server.port=8081


dubbo.scan.base-packages=com.zjj.provider.service

dubbo.application.name=${spring.application.name}
dubbo.registry.address=zookeeper://zjj101:2181



# Dubbo 协议定义,这个是属于应用级别的 ,配置你这个应用 用什么协议
dubbo.protocols.p1.id=dubbo-one
dubbo.protocols.p1.name=dubbo
dubbo.protocols.p1.port=20881
dubbo.protocols.p1.host=0.0.0.0

# 添加rest协议
dubbo.protocols.p2.id=rest-two
dubbo.protocols.p2.name=rest
dubbo.protocols.p2.port=8082
dubbo.protocols.p2.host=0.0.0.0

provider实现类

package com.zjj.provider.service;

import com.zjj.DemoService;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.rpc.RpcContext;
import org.apache.dubbo.rpc.protocol.rest.support.ContentType;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

/**
 * 参数2 protocol代表用properties声明的 p1和p2这两个protocol ,
 * 当然你也可以用一个,
 */
@Service(version = "rest", protocol = {
     "p2","p1"})
@Path("demo")  //路径
public class RestDemoService implements DemoService {
     

    @GET  // get请求
    @Path("say") // 路径
    @Produces({
     ContentType.APPLICATION_JSON_UTF_8, ContentType.TEXT_XML_UTF_8})
    @Override
    public String sayHello(@QueryParam("name") String name) {
     
        System.out.println("执行了rest服务" + name);

        URL url = RpcContext.getContext().getUrl();
        return String.format("%s: %s, Hello, %s", url.getProtocol(), url.getPort(), name);  // 正常访问
    }

}

启动项目开始测试

发现用postman也能调用成功. 用dubbo 的consumer也能调用成功,这个我就不演示了,自己去给代码下载下来跑起来运行下就知道结论了.

dubbo的Rest调用 _ Java侠

作者:张俊杰1994
来源链接:https://blog.csdn.net/qq_41489540/article/details/121894983

标签: Dubbo

“dubbo的Rest调用” 的相关文章

springmvc配置dubbo两种方式

springmvc配置dubbo两种方式 dubbo+zookeeper 在读本文前建议先掌握dubbo的基本知识 dubbo官网地址:htt...

比较spring cloud和dubbo,各自的优缺点是什么

比较spring cloud和dubbo,各自的优缺点是什么

dubbo由于是二进制的传输,占用带宽会更少 springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大 d...

新版 dubbo-admin 安装配置

新版 dubbo-admin 安装配置

资源的下载 https://github.com/apache/dubbo 下载完毕以后解压,主要文件夹有这几个 最新版本的dub...

java spi与dubbo spi区别

java spi与dubbo spi区别

java spi java spi是上游产商给服务供应商提供的接口,供应商遵循接口契约提供自己的实现.。提供了服务接口的一种实现之后,在jar...

zookeeper管理dubbo接口排错指南

zookeeper管理dubbo接口排错指南

Mac终端下操作,Windows可能稍有不同,请甄别: 切换到zookeeper的bin目录下,启动zkClient: zkCli 查看有哪...

dubbo注解使用详解

一、背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行。 当越来越的的接口与实现类的增加后,du...

Spring Cloud Alibaba,Apache Dubbo 的基本应用

Spring Cloud Alibaba,Apache Dubbo 的基本应用

一、为什么要用dubbo 服务治理框架 服务的监控 服务的注册发现 服务的通信 服务的容错 服务的负载均衡 Sprin...

如何处理Dubbo调用超时

如何处理Dubbo调用超时

一、简述 同步调用是一种阻塞式的调用方式,即 Consumer 端代码一直阻塞等待,直到 Provider 端返回为止。dubbo 默认的协议...

Dubbo服务测试方法

Dubbo服务测试方法

Dubbo服务发布之后,除了编写Dubbo Consumer服务调用去测试,我们也可以利用telnet命令进行调试、管理。Dubbo 2.0.5以上版本服务提供端口支持tel...

Springboot 整合dubbo小案例

Springboot 整合dubbo小案例

Springboot 整合dubbo小案例 最近在看dubbo的一些案例,发现dubbo作为一个分布式的SOA服务治理框架,与普通的项目相比,优势多了很多,spring...