如何免费创建专业的公司网站以吸引潜在客户?
摘要:网站建设的er图,怎么免费制作公司网页,义乌建网站,汉高建设公司网站RPC编程:Hessian RPC一个老的RPC框架一:Hessian RPC1:
网站建设的er图,怎么免费制作公司网页,义乌建网站,汉高建设公司网站RPC编程#xff1a;Hessian RPC一个老的RPC框架一#xff1a;Hessian RPC1#xff1a;Hession RPC一个老的RPC框架2#xff1a;老#xff0c;为什么还要研究#xff1f;3#xff1a;Hession RPC概念二#xff1a;Hessian RPC设计思想1#xff1a;Hession依赖于服务器2…
RPC编程Hessian RPC一个老的RPC框架一Hessian RPC1Hession RPC一个老的RPC框架2老为什么还要研究3Hession RPC概念二Hessian RPC设计思想1Hession依赖于服务器2Hession服务提供者必须为Service定义接口3为什么必须定义接口4必须使用Serializable接口5服务的发布A服务的提供者B服务的调用者一Hessian RPC
1Hession RPC一个老的RPC框架
Hessian RPC是一个非常老的RPC框架2010年以前还是非常棒的。现在没人用的原因是因为它不符合现在新的这些潮流注册中心熔断服务管理等等。但是RPC当中几个核心的内容网络通讯、协议、序列化、代理是全部包含的。
2老为什么还要研究
纯粹的RPC只解决了RPC中的上述四个核心问题。 Hessian他的序列化方式在Dubbo还在使用Dubbo当中的Hession是阿里定制的(Hession Lite) Dubbo默认启动的。
3Hession RPC概念
1Resin服务器的伴生产品。 2一个基于Java语言设计的RPC框架只支持Java编程语言也就是服务的调用者和提供者都得是Java开发的服务。这些可不是废话我们一些新的RPC技术gRPCThrift支持多种编程语言。 3序列化协议是二进制的。 4官网 http://hessian.caucho.com/doc/
二Hessian RPC设计思想
1Hession依赖于服务器
Hessian RPC作为Resin服务器的伴生产品。作为服务端来讲Hessian在运行过程中依赖的就是我们的Tomcat服务器或者Resin他因为是Resin的伴生产品他依赖于我们线程的Web服务器即可。这样的话就不需要我们处理协议问题因为服务器本身使用的是Http协议刚才我们提到了Hessian的协议是二进制的Http协议也是可以走二进制在他的请求体中走二进制。我们说是Http协议是文本协议但是Http协议消息体也是可以走二进制的。
2Hession服务提供者必须为Service定义接口
有了服务器之后我们服务的提供者我们需要提供服务也就是我们的Service也就是我们原来开发的Service。只不过我们使用Hessian进行调用的话我们的Service必须定义接口Interface我们去给他的接口去定义实现类。为什么有这样的要求呢
3为什么必须定义接口
服务调用者也就是Java客户端的Service服务的提供者也就是服务端的Service。
我们忽略了一个问题我们的服务调用者调用服务的时候我们必须在服务的调用端必须要做代理如果我们使用JDK做代理的话必须要实现相同的接口。从广义的代理上来讲我们可以使用CgLib的继承关系来做代理理论上是没有任何问题的只不过Hessian使用的较早当时CgLib不是特别流行导致Hessian内部只使用JDK作为代理。
4必须使用Serializable接口
本质上这是定义了序列化方式。
5服务的发布
A服务的提供者
服务端如何将服务发布出去让调用者知道服务端提供了那些服务Hessian当中可没有注册中心服务管理这一说。是通过Hession为我们提供的一个Servlet使用的。
我们如何基于Servlet发布一个服务让调用者可知呢只需要在web.xml当中进行配置一下就行了。具体内容在编码中我们会写的。 这里需要注意的是我们现在的请求的是二进制的走Http二进制的数据所以Hession只能走Post请求。
B服务的调用者
代理的这个事不需要我们来开发了Hessian帮我们开发了一个工具类HessianProxyFactory这个类即可但是我们需要提供两个要素具体的Service.class和URL
基于服务提供方的Service.class我们可以做代理拿到了URL之后我们可以发送请求。
服务端我们开发了Service的接口我们的客户端也得使用服务的接口所以这个服务的接口需要做成公共模块也就是Maven当中的Common模块。
