Dubbo(三) -- 多协议支持

一、Dubbo支持的协议

  Dubbo协议、Hessian协议、HTTP协议、RMI协议、WebService协议、Thrift协议、Memcached协议、Redis协议

二、协议简介

  详细参考:http://blog.csdn.net/songjinbin/article/details/49498431

  1.Dubbo协议

     Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。Dubbo缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。

  2.Hessian协议

   Hessian协议用于集成Hessian的服务,Hessian底层采用Http通讯,采用Servlet暴露服务,Dubbo缺省内嵌Jetty作为服务器实现。Hessian是Caucho开源的一个RPC框架:http://hessian.caucho.com,其通讯效率高于WebService和Java自带的序列化。

     基于Hessian的远程调用协议:

    • 连接个数:多连接
    • 连接方式:短连接
    • 传输协议:HTTP
    • 传输方式:同步传输
    • 序列化:Hessian二进制序列化
    • 适用范围:传入传出参数数据包较大,提供者比消费者个数多,提供者压力较大,可传文件。
    • 适用场景:页面传输,文件传输,或与原生hessian服务互操作

  3.HTTP协议

   此协议采用spring 的HttpInvoker的功能实现,

    • 连接个数:多个
    • 连接方式:长连接
    • 连接协议:http
    • 传输方式:同步传输
    • 序列化:表单序列化
    • 适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。
    • 适用场景:需同时给应用程序和浏览器JS使用的服务。

  4.RMI协议

   采用JDK标准的java.rmi.*实现,采用阻塞式短连接和JDK标准序列化方式

   Java标准的远程调用协议:  

    • 连接个数:多连接
    • 连接方式:短连接
    • 传输协议:TCP
    • 传输方式:同步传输
    • 序列化:Java标准二进制序列化
    • 适用范围:传入传出参数数据包大小混合,消费者与提供者个数差不多,可传文件。
    • 适用场景:常规远程服务方法调用,与原生RMI服务互操作

三、在Dubbo中配置

  1.

时间: 2024-11-03 05:37:42

Dubbo(三) -- 多协议支持的相关文章

当当网开源Dubbox,扩展Dubbo服务框架支持REST风格远程调用

当当网近日开源了Dubbox项目,可为Dubbo服务框架提供多项扩展功能,包括REST风格远程调用.Kryo/FST序列化等等. 当当网架构部和技术委员会架构师沈理向InfoQ中文站介绍了Dubbox项目,开发背景和主要特点描述如下: Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架.作为一个重要的技术研究课题,在当当网我们根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox(即Dubbo eXtensi

Windows下面安装和配置Solr 4.9(三)支持中文分词器

首先将下载解压后的solr-4.9.0的目录里面找到lucene-analyzers-smartcn-4.9.0.jar文件, 将它复制到solr的应用程序里面D:\apache-tomcat-7.0.54\webapps\solr\WEB-INF\lib, 备注:网上很多文章使用IK中文分词器(IK_Analyzer2012_u6.jar)但是在solr-4.9.0版本中,我是一直没有配置成功.所以只能使用solr自带的中文分词器了. 在回到solr的应用程序目录(D:\Demos\Solr\

RPC服务框架dubbo(三):Dubbo支持的协议

1.Dubbo 1.1 Dubbo官方推荐的协议. 1.2 本质:使用NIO和线程池进行处理. 1.3 缺点:大文件传输时可能出现文件传输失败问题. 2.RMI 2.1 JDK提供的协议,远程方法调用协议. 2.2 缺点:偶尔连接失败. 2.3 优点:JDK原生,不需要进行额外配置(导入jar) 3.Hession 3.1 优点:基于http协议,http请求支持. 3.2 缺点:需要额外导入jar,并在短连接时性能低 原文地址:https://www.cnblogs.com/shamo89/p

dubbo本地服务化实现(dubbo三)

一.dubbo服务化架构包含的内容 对于传统工程而言,分层的依据是按照包来区分.由于在相同的工程中,所以服务的提供和调用可以方便的实现. 但是对于分布式架构而言,服务的提供者负责服务具体的实现和接口规范,服务的消费者只关心接口规范即可.但是 无论是服务的提供者还是服务的消费者都会涉及到诸如公共工具类.接口.DO.VO.等公共代码,因此一个简单的 dubbo服务架构模式如下: 服务提供者:提供服务接口的实现,发布服务地址,提供服务 服务消费者:获取服务地址,使用服务接口调用服务,处理服务调用结果

三个支持正则表达式的行处理的工具: grep/sed/awk

grep: 全称Global Regular Expression Print, 是干什么的,不多说了: 用法:grep [-options] [pattern] [filename] 选项: -c: 只输出匹配行的数目 -i: 不区分大小写 -n:显示匹配航以及行号 -l:查询多文件的时候只输出包含匹配字符的文件名 -L: 列出不匹配的文件名: -v:反向匹配,即显示不匹配的行 -h: 查询的时候不适用文件名 -s:不显示错误信息 -E 使用扩展正则表达式 //很有用啊, -A :后跟一个数字

三联动 支持ie6,ie7 省,市,区

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>原生js实现最新省市区数据三级联动特效代码_特效网</title> <meta charset="utf-8"> <style type="text/css"> form{margin:200px 400px;} </style> <scrip

添加dubbo xsd的支持

使用dubbo时遇到问题: org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of th

(三) 支持Nor Flash

修改include/configs/mini2440.h 头文件 /*----------------------------------------------------------------------- * FLASH and environment organization */ #if 0 #define CONFIG_AMD_LV400 1  /* uncomment this if you have a LV400 flash */ #define CONFIG_AMD_LV8

jquery三种支持手机触屏的插件库

因为最近开发的项目涉及到移动设备上的 HTML5 开发,其中需要实现轮播效果.然后最快捷的方式,你知道(Bootstrap),然后原生的 Bootstrap 的 carousel.js 插件并没有支持手势. 如下有三种方式: 1.下载jquerymobile库文件,导入js文件: 调用:swipeleft 和  swiperight 或 swipe  事件 2.使用TouchSwipe jQuery plugin 插件  地址:https://github.com/mattbryson/Touc