一文具体解读 Dubbo 中的 Http 协议
副问题[/!--empirenews.page--]
太阳红彤彤,花儿五颜六色,列位读者伴侣好,又来到了分享 Dubbo 常识点的时辰了。说到 Dubbo 框架支持的协议,你的第一回响是什么?或许会有 Dubbo 默认支持的 dubbo 协议,以及老生常谈的由当当孝顺给 Dubbo 的 rest 协议,可能是本日的主角 http。截至到今朝,Dubbo 最新版本演进到了 2.7.3,已经支持了:dubbo,hessain,http,injvm,jsonrpc,memcached,native-thrift,thrift,redis,rest,rmi,webservice,xml 等协议,有些协议的行使方法还没有补全到官方文档中。原本 Dubbo 支持这么多协议,是不是有点出乎你的料想呢? 这么多 RPC 协议,也许有人会发生如下的疑问:rest,jsonrpc,webservice 不都是依赖 http 通讯吗?为什么还单独占一个 http 协议?先不急着答复这个题目,而是引出本日的话题,先来先容下 Dubbo 框架中所谓的 http 协议。 Dubbo 中的 http 协议 在 Dubbo 行使 http 协媾和其他协议根基一样,只必要指定 protocol 即可。
server 属性可选值:jetty,tomcat,servlet。 设置事后,当处事斲丧者向处事提供者提倡挪用,底层便会行使尺度的 http 协议举办通讯。可以直接在 https://github.com/apache/dubbo-samples 中找到官方示例,个中的子模块:dubbo-samples-http 构建了一个 http 协议挪用的例子。 为停止各人误解,特在此声明:本文中,全部的 http 协议特指的是 dubbo 中的 http 协议,并非谁人各人耳熟能详的通用的 http 协议。 http 协议的底层道理 从默认的 dubbo 协议改为 http 协议长短常简朴的一件事,上面即是行使者视角所看到的所有的内容了,接下来我们将会切磋其底层实现道理。 翻看 Dubbo 的源码,找到 HttpProtocol 的实现,你也许会受惊,根基就依赖 HttpProtocol 一个类,就实现了 http 协议 ![]() 要知道实现自界说的 dubbo 协议,有近 30 个类!http 协议实现的云云简朴,背后首要缘故起因有两点:
Spring 提供的 HttpInvoker 是何方神圣呢?简直是一个较量生僻的观念,但并不伟大,简朴来说,就是行使 Java 序列化将工具转换成字节,通过 http 发送出去,在 server 端,Spring 能按照 Url 映射,找到容器中对应的 Bean 反射挪用的进程,没见地过它也没相关,可以通过下面的示例快速把握这一观念。 Spring HttpInvoker 本节内容可拜见 Spring 文档:https://docs.spring.io/spring/docs/4.3.24.RELEASE/spring-framework-reference/htmlsingle/#remoting-httpinvoker-server 下面的示例将会展示怎样行使 Spring 原生的 HttpInvoker 实现长途挪用。 建设处事提供者
袒露处事的代码相等简朴,必要留意两点:
建设处事斲丧者
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |