展开

关键词

DubboHTTP RPC vs Dubbo RPC性能压测

由于Dubbo原生提供的Http rpc协议的实现,不仅使用了Spring框架的API,还使用了Java的原生序列化,所以我们基于扩展点自实现了Http rpc协议,移除对Spring的强依赖,并使用json 此次性能测试对比的是我们基于Dubbo扩展点自实现的Http rpc协议,与Dubbo原生Dubbo rpc协议的单次请求响应平均耗时、吞吐量。 Dubbo rpc:Dubbo rpc协议 + hessian2序列化协议 Http rpc:Http rpc协议(服务端使用jetty,客户端使用netty) + json序列化协议(使用fastjson 唯一的区别是,使用http rpc协议需要配置连接池,使用dubbo rpc协议只配置单一长连接。 环境 本地测试,MacBook Pro 8核16G 尽量关闭多余进程 先启动dubbo协议服务提供者和消费者,测完dubbo协议后,再测http协议 dubbo版本:2.6.4 (二次开发过,增加了一些功能特性

13840

dubbo-http 协议小探和修改尝试

Dubbo-http 底层探究 ---- 最近在研究如何让用户的 dubbo 代码最小改动的迁移到 http 协议上,看了很多实现都要做很多改动,用户不友好。 于是看了下 github 发现最新的 dubbo 已支持了 dubbo-http rpc。开始以为用的是 HttpClient 做的封装,实际上是采用了 jsonrpc4j 这个库。 使用服务名发送 http 请求 ---- 虽然 dubbo-httpdubbo 支持了 http 协议,但请求的 url 中使用的任然是 provider 实例的 ip,并不是服务名。 现在回过头来看,一个采用dubbo默认协议,或者非 dubbo-http 方式的项目转到 dubbo-http rpc 协议需要做如下几方面改动: 不需要改动 java 代码 依赖包需要添加 下面罗列的依赖 完整的依赖,请见项目的 parent pom, provider pom 和 consumer pom dubbo-rpc-http dubbo-remoting-http javax.servlet-api

97041
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于Dubbohttp自动测试工具分享

    公司是采用微服务来做模块化的,各个模块之间采用dubbo通信。好处就不用提了,省略了之前模块间复杂的http访问。 但是对于测试来说就有点麻烦了, 每次还要去写dubbo的消费程序,而且每次新增一个接口,都需要重新改写程序,费时费力。 1 扫描某个包下所有的类 小程序开始的第一步就是需要扫描某个包下所有的dubbo实现类。 由于工程是springboot,因此最终部署是在jar中。 ——答案 就是Bean 因为在Spring的项目中,dubbo的provider都是一个单例的bean。 :-))))))))) 参考: Java扫描特定包下的类 Dubbo官方文档

    86180

    一文详细解读 Dubbo 中的 http 协议

    大概会有 Dubbo 默认支持的 dubbo 协议,以及老生常谈的由当当贡献给 Dubbo 的 rest 协议,或者是今天的主角 httpDubbo 中的 http 协议 在 Dubbo 使用 http 协议和其他协议基本一样,只需要指定 protocol 即可。 Dubbo 提供 http 协议到底解决什么问题,什么场景下用户会考虑使用 Dubbohttp 协议。 我个人认为 Dubbo 现如今的 http 协议比较鸡肋,原生 http 通信的优势在于其通用性,基本所有语言都有配套的 http 客户端和服务端支持,但是 Dubbohttp 协议却使用了 application 总结,dubbo 现有 http 协议的意义是什么?

    2.5K20

    api网关http协议转换dubbo怎么做? 不同协议的特点?

    api网关安装和建设过程当中也会有一系列的问题,api网关http协议转换dubbo怎么做? api网关http协议转换dubbo怎么做? api网关http协议转换dubbo这个问题属于api网关建设和搭建过程当中的问题,每一种网络系统都需要网络协议才能进行信息的传达和中转。 Dubbo是一种常用的网络协议,那么api网关该如何转换 Dubbo呢?在dubbo当中非常常用的一种方式就是泛化调用,首先要提供一个web层的服务给HTTP协议可以供客户端使用。 然后打开api网关的注册中心,在dubbo当中添加rest协议,然后就可以进行 HTTP协议和dubbo之间的自由转换了。 以上就是api网关http协议转换dubbo怎么做的相关知识协议转换是api网关配置当中的一个重要内容,在配置的时候一定要参考专业步骤来做,免得配置出错影响网关使用。

    14720

    Dubbo剖析-Dubbo协议

    一、前言 TCP协议栈中,每层模型都有自己的协议报文格式,TCP协议是网络七层模型中的传输层,在TCP上层是应用层,应用层协议常见的有telnet等,Dubbo协议作为建立在TCP协议之上的一种协议,自然也有自己的协议包格式 image.png 二、Dubbo协议格式 如下图Dubbo协议也是由header和body两部分组成, ? 121.png 三、总结 本文主要讲解了dubbo协议帧格式,另外深入浅出dubbo视频课程已经在放出了, 单击我观看视频 可进入观看。

    46210

    dubbo源码之dubbo SPI

    常出现的地方有日志门面接口实现类加载、Spring SPI、JDK SPI、dubbo SPI、hadoop、solr cloud、elasticjob等,这里主要介绍下JDK SPI和dubbo SPI 2. dubbo的SPI机制 dubbo中使用了大量的SPI,如rpc协议(Protocol),过滤器(Filter),序列化(Serialization),底层传输方式(Transporter),代理工厂 ExtensionLoader com.alibaba.dubbo.common.extension.ExtensionLoader是spi拓展加载器。 double check的机制进行延迟加载,一方面防止重排序,另一方面降低同步的开销,Holder中的value为volatile是为了保证多线程条件下的线程可见性,这样double-check才能正常工作(http 总结 这里介绍了jdk spi和dubbo spi的相应机制,通过spi机制极大地提高了接口设计的灵活性,这也是dubbo能够达到高拓展性的一个基础。

    36130

    Dubbo

    Dubbo 文档地址:https://dubbo.apache.org/zh/docs/v2.7/user/ 架构 Dubbo 架构: image.png 调用关系说明: 0.服务容器负责启动,加载, 在提供方增加暴露服务配置 dubbo:service,在消费方增加引用服务配置 dubbo:reference。 provider.xml: <! -- 增加暴露远程服务配置 --> <dubbo:service interface=“com.xxx.XxxService” ref=“xxxService” /> consumer.xml: < -- 增加引用远程服务配置 --> <dubbo:reference id=“xxxService” interface=“com.xxx.XxxService” /> <!

    7020

    Dubbo

    Dubbo是什么 Dubbo是一个RPC框架,简单来说就是实现不同主机间的功能调用的框架,其中需要建立网络连接以及参数传递需要的序列化操作,这二者影响了RPC框架的速度,RPC介绍 From Dubbo SpringBoot默认也是8080,需要自行修改,比如:server.port=8088 监控中心的前端Vue默认代理8080,自行修改vue.config.js,要和后端端口一致:target: ''http SpringBoot搭建Dubbo 使用注解和配置文件方式来配置 4.1 添加依赖、开启Dubbo注解 <dependency> <groupId>org.apache.dubbo</groupId =com.howl.dubbo.provider # 注册中心地址、通信协议 dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.registry.protocol =zookeeper # 与消费者通信的协议、端口号 dubbo.protocol.name=dubbo dubbo.protocol.port=20880 4.3 Consumer 在需要远程调用的属性上加入

    6410

    Dubbo

    所以,当我们使用了Dubbo的@Service注解之后,其实没必要再使用Spring的相关注解了. 为了避免大多数流量都请求到同一台机器或部分机器没有流量,需要根据一种负载算法选择一个Invoker 说一说Dubbo的扩展机制? 首先你要区分JDK自带的SPI机制与Dubbo扩展机制有和不同: 1.1 可以根据key获取对应的实现类 1.2 IOC支持 1.3 AOP支持 IOC支持是基于ExtensionFactory实现

    27120

    Dubbo(四) Dubbo-Admin项目 Dubbo管理台

    前言 在dubbo项目中,有注册中心,消费者,提供者就足以构成一个完整的项目了。但是仅仅有这三个角色,很难对整个项目状态有直观的了解,以及对项目操作。 因此早有前辈对此原因作出了贡献——一个通用的dubbo-admin管理后台,他可以对dubbo角色进行监控,以及对zookeeper做图形化操作,比如路由、负载均衡。 2.8.4版本War包下载地址:http://heartblog.xin/rec/down/dubbo-admin-2.8.4.war ps:低版本的对JDK7支持不了,高版本例如2.8.4已经兼容。 dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.admin.root.password=root dubbo.admin.guest.password 下一章、Dubbo(五) Dubbo入门demo——helloworld:http://www.droptb.com/article/detail/0eb59155f8b9434d99d8875a900ea750

    713100

    Dubbo(Dubbo与Zookeeper、SpringMVC整合)

    :tx="http://www.springframework.org/schema/tx" 6 xmlns:dubbo="http /dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd 12 http://www.springframework.org );">xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" spring-jee-3.1.xsd 11 http://code.alibabatech.com/schema/dubbo http ://code.alibabatech.com/schema/dubbo/dubbo.xsd 12 http://www.springframework.org/schema/context

    2.6K30

    Dubbo(五) Dubbo入门demo——helloworld

    " xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org /schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <! " xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org /schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <! 下面的key值填写配置文件中一致的 http://code.alibabatech.com/schema/dubbo/dubbo.xsd 如下图: ? 确定完成之后重新验证配置文件即可。

    1.8K90

    Dubbo系列之Dubbo原理简介

    文章目录 一、分布式基本知识 1.1) 架构演变 1.2)、分布式基本概念 二、RPC简介 2.1) RPC概念 2.2) RPC核心模块 三、Dubbo原理简介 3.1) Dubbo简介 3.2) 核心功能 3.3) 原理简介 参考资料 一、分布式基本知识 1.1) 架构演变 先给出dubbo官方的图,图片表示了架构的演变。 比如Java方面的,Dubbo框架或者Spring Cloud。 2.2) RPC核心模块 RPC有两个核心模块:通信和序列化 三、Dubbo原理简介 3.1) Dubbo简介 Dubbo是阿里巴巴开源的一款Java RPC框架,现在已经捐赠给Apache 官网:http ://dubbo.apache.org/ 3.2) 核心功能 a、智能容错和负载均衡 b、服务注册和发现 c、面向接口的远程方法调用 3.3) 原理简介 上图是Dubbo官方的图 角色 Provider

    10830

    Dubbo学习笔记之Dubbo简介

    先给出dubbo官方的图,图片表示了架构的演变。然后我说一下自己的理解。 应用最开始是单体应用,即一个应用包括了所有应用模块。 随后就是垂直应用架构,也就是将系统拆分为多个应用模块。 比如Java方面的,Dubbo框架或者Spring Cloud。 2.2) RPC核心模块 RPC有两个核心模块:通信和序列化 三、Dubbo原理简介 3.1) Dubbo简介 Dubbo是阿里巴巴开源的一款Java RPC框架,现在已经捐赠给Apache 官网:http ://dubbo.apache.org/ 3.2) 核心功能 a、智能容错和负载均衡 b、服务注册和发现 c、面向接口的远程方法调用 3.3) 原理简介 ? 零基础搭建一套微服务框架(Spring Boot + Dubbo + Docker + Jenkins)

    28630

    Dubbo基础篇--面试Dubbo概念

    Dubbo 发展过程中的重要时间点 dubbo四大组件 ? Dubbo三大领域模型 为了对Dubbo整体机构叙述方便,Dubbo抽象了三大领域模型,注意这里的模型和DDD(领域驱动模型)无关 Protocal服务域:是INVOKER暴露和引用的主要功能入口,他负责 Invocation会话域:他持有调用过程的变量,比如方法名,参数等 Dubbo两大原则 采用Microkernel+Plugin模式,Microkernel只负责组装Plugin,Dubbo功能也是可以由扩展点实现 ,也就是Dubbo的所有功能点都可被用户自定义扩展所替换。 Dubbo的架构设计公分为10层,最上面service层是Dubbo开发分布式服务开发者实现业务逻辑的接口层.图中左边是消费者使用着的接口,右边是是提供者使用的接口,位于中轴线的为双方都要用到的接口,对于这

    18510

    Dubbo基本用法-Dubbo Provider配置

    " xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xsi:schemaLocation="http://www.springframework.org /schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns="http://www.springframework.org/schema/ /schema/beans/spring-beans-4.3.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com " xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xsi:schemaLocation="http://www.springframework.org

    1.8K20

    Dubbo篇】--Dubbo框架的使用

    一、前述 Dubbo是一种提供高性能,透明化的RPC框架.是阿里开源的一个框架。 官网地址:http://dubbo.io/ 二、架构 ? 组件解释: Provider: 提供者.发布服务的项目. \spring里面复制 <beans xmlns="<em>http</em>://www.springframework.org/schema/beans" xmlns:xsi="<em>http</em>://www.w3.org :<em>dubbo</em>="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org /schema/context http://www.springframework.org/schema/context/spring-context.xsd http ://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    1.3K10

    dubbo学习实践(3)之Dubbo整合Consul及Dubbo配置方式

    Consul注册中心验证 修改provider和consumer的服务配置文件 Provider端: Provider端: 运行provider,访问consul:http://192.168.231.132 Dubbo的多种配置方式 A.XML配置方式,上文中xml配置的方式(https://www.cnblogs.com/kunwn/p/14608879.html),是推荐的方式 B.API配置方式,provider.xml 通过 Spring 中 Java Config 的技术(@Configuration)和 annotation 扫描(@EnableDubbo)来发现、组装、并向外提供 Dubbo 的服务。

    51810

    Dubbo服务治理篇——Dubbo Filter实战

    熟悉Dubbo的同学或朋友,都会知道,一般dubbo的service层都是一些通用的,无状态的服务。 但是在某些特殊的需求下,我们又需要传递一些上下文环境,打个不恰当的比方,例如需要在每次调用dubbo的服务的时候,记录一下用户名或者需要知道sessionid等。 解决办法1 如果是在项目设计的时候就意识到这一点的话,就好办,把所有的dubbo服务请求的参数都封装一个公共的父类,把一些上下文环境在放在父类的属性中。 ? 这样做的好处就是,dubbo接口的参数都统一的,在Dubbo中可以做一些统一的处理(例如把上下文环境取出来,放在ThreadLocal中)。 META-INF/dubbo/com.alibaba.dubbo.rpc.Filter 注意是 META-INF文件下的dubbo文件夹下的"com.alibaba.dubbo.rpc.Filter"

    32210

    相关产品

    • Serverless HTTP 服务

      Serverless HTTP 服务

      Serverless HTTP 基于腾讯云 API 网关平台,为互联网业务提供 0 配置、高可用、弹性扩展的对外 RESTful API 能力,支持 swagger/ openAPI 等协议。便于客户快速上线业务逻辑,通过规范的 API 支持内外系统的集成和连接。

    相关资讯

    热门标签

    扫码关注腾讯云开发者

    领取腾讯云代金券