`
xmong
  • 浏览: 263345 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring RPC远程服务

阅读更多
Spring RPC远程服务


目录
1 SPRING远程调用 1
1.1 SPRING远程调用的RPC模式 1
1.2 远程服务 1
2 SPRING的RMI调用 1
2.1 RMI远程调用 1
2.2 SPRING客户端调用RMI服务 1
2.3 SPRING服务器发布RMI服务 2
3 SPRING的HESSIAN和BURLAP调用 2
3.1 HESSIAN和BURLAP 2



1 Spring远程调用
1.1 Spring远程调用的RPC模式
(1) 远程调用RMI:不考虑网络限制(如防火墙)时,访问/公开基于java的服务。
(2) Hessian/Burlap:考虑网络限制时,通过HTTP访问/公开基于java的服务。
(3) HTTP invoker:考虑网络受限时访问/公开基于Spring的服务。
(4) JAX-RPC/JAX-WS SOAP:访问公开基于SOAP的web服务。
1.2 远程服务

2 Spring的RMI调用
2.1 RMI远程调用
RMI(Remote Method Innovation)是在Java在JDK1.1中被实现的,它大大增强了Java开发分布式应用的能力,提供给java程序员一种强大的方法来实现java程序间的交流。RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。JRMP是专为Java的远程对象制定的协议,因此,Java RMI具有Java的“Write Once,Run Anywhere”的优点,是分布式应用系统的百分之百纯Java解决方案。用Java RMI开发的应用系统可以部署在任何支持JRE(Java Run Environment Java,运行环境)的平台上。但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。RMI使用任意端口来交流,这是防火墙所不允许的,所以,RMI的使用所防火墙的限制。
2.2 Spring客户端调用RMI服务
客户端:在Spring中可以使用RmiProxyFactoryBean来引用一个RMI远程服务,在spring的配置文件中配置如下:
<bean id="rmiService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> 
    <property name="serviceUrl" value="rmi://${host}/rmiService "/> 
    <property name="serviceInterface" value="com.rmi.service.RmiService"/> 
</bean>
2.3 Spring服务器发布RMI服务
服务器:在Spring中可以使用RmiServiceExpoter来发布一个RMI远程服务,在spring的配置文件中配置如下:
<bean class="org.springframework.remoting.rmi.RmiServiceExporter"> 
<property name="service" ref="rmiServiceImpl"/> 
<property name="serviceName" ref="rmiService"/> 
    <property name="serviceInterface" value=”com.rmi.service.RmiService”>
  <property name="registryHost" value="rmi.host.com"/> 
<property name="registryPort" ref="9999"/> 
  </bean>

3 Spring的Hessian和Burlap调用
Hession和Burlap是Caucho Technology提供的两种远程调用的解决方案,是基于HTTP的轻量级远程调用服务。
3.1 Hessian和Burlap
(1) Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据,它的二进制数据可以移植到其他非java的语言中,包括PHP,Python,C,C++和C#。
(2) Burlap是一种基于XML的远程技术,这使得它自然而然地可以移植到任何可以解析xml的语言中,比起hessian的二进制格式来,它的可读性更强,burlap的xml数据格式和SOAP的不同,burlap的消息尽可能简单,不需要额外的外部定义语言如WSDL或IDL。
在选择hessian和Burlap时,它们很多程度上都一样,唯一不不同的是hessian的消息是二进制,burlap的消息是xml,由于hessian的消息是二进制,所以在宽带上更具优势,但burlap的可读性更强




/*********************/
未完待续
参考spring官网,spring in action

分享到:
评论

相关推荐

    rpc远程调用使用说明&源码

    RPC(Remote Procedure Call)远程过程调用是一种计算机通信协议,允许一个程序在某处执行,通过网络调用另一台计算机上的程序,就像它是一个本地函数一样。这种技术在分布式系统和微服务架构中广泛使用,简化了不同...

    spring-rpc-case

    通过客户端,开发者可以像调用本地方法一样调用远程服务,Spring框架会处理网络传输和序列化等细节。 2. **spring-rpc-service**:这部分可能对应Spring RPC的服务端实现,服务端包含实际提供服务的业务逻辑。...

    spring rabbitmq rpc 测试代码

    接下来,我们需要创建RPC服务接口,定义客户端调用的远程方法: ```java public interface RpcService { String call(String request); } ``` 然后,我们实现这个接口,并使用`@RabbitListener`注解监听特定的...

    Spring 实现远程访问详解——rmi

    5. JAX RPC: Spring通过JAX-RPC为远程Web服务提供支持(J2EE 1.4's web service API)。 6. JAX-WS:Spring通过JAX-WS为远程Web服务提供支持(the successor of JAX-RPC, as introduced in Java EE 5 and Java 6)。 7. ...

    Jsonrpc4j+Spring自动扫描配置

    在Jsonrpc4j中,服务提供者(Server)注册一组可被调用的远程方法,而服务消费者(Client)则可以跨网络调用这些方法,就像它们是本地方法一样。 在Spring中,我们可以通过以下步骤实现Jsonrpc4j的自动化配置: 1....

    基于netty + SpringBoot仿照dubbo手动实现RPC远程本地无感知调用项目源码

    通过Spring注解形式启用RPC,接口暴露扫描,Rpc接口注解引用。 等等 ​ 该版本实现到的功能:服务注册、服务发现、服务断开注册中心自动剔除服务、多个提供者可对应一个消费者。 ​ 注册中心针对服务提供者的数据...

    spring集成rabbitmq实现rpc

    本文将详细讲解如何在Spring项目中集成RabbitMQ,实现基于RPC(远程过程调用)的通信模式。 首先,我们需要在项目中引入Spring AMQP库,这是Spring对RabbitMQ的官方支持。可以通过在pom.xml文件中添加以下Maven依赖...

    spring springmvc hessian rpc客户端及服务端示例demo

    在客户端,我们需要创建一个HessianProxyFactoryBean来代理远程服务: ```xml &lt;bean id="helloService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean"&gt; ``` 现在,客户端就可以像...

    jsonrpc4j整合Spring+Maven轻量级远程调用

    在这个场景中,我们将讨论如何将JSONRPC4J与Spring框架和Maven构建工具整合,以创建一个高效、灵活的远程服务调用系统。 1. **JSONRPC4J简介** JSONRPC4J提供了简单的方式来实现JSON-RPC规范,该规范定义了客户端...

    springboot整合Dubbo框架,实现RPC服务远程调用

    Consumer 调用远程服务的服务消费方(负载均衡) Registry 服务注册与发现的注册中心(监控、心跳、踢出、重入) Monitor 服务消费者和提供者在内存中累计调用次数和调用时间,主动定时每分钟发送一次统计数据到监控...

    使用spring远程调用服务端接口实现WebService功能

    在Java EE平台上,Spring框架提供了一种强大的方式来实现远程服务调用,特别是通过其HttpInvokerServiceExporter组件来实现基于HTTP的WebService功能。这个技术允许客户端和服务端通过HTTP协议进行通信,实现远程...

    rpc-spring-boot-starter.rar

    "rpc-spring-boot-starter"通常是一个用于整合Spring Boot与RPC框架的starter项目,它旨在简化在Spring Boot应用中集成各种RPC服务的过程。 在"rpc-spring-boot-starter"这个压缩包中,我们通常会找到以下组件或...

    rpc 远程调用

    例如,Spring框架的`JDK Proxy`或`CGLIB`可以用来创建动态代理,使得客户端可以透明地调用远程服务。 2. **序列化与反序列化**:由于RPC涉及跨进程通信,数据需要在网络中传输,这就需要将对象转换为可传输的格式,...

    BootNettyRpc是一个采用Netty实现的Rpc框架适用于SpringBoot项目支持SpringCloud

    BootNettyRpc是一个专为Spring Boot项目设计的RPC(Remote Procedure Call)框架,它利用了高性能的Netty网络库来实现高效、低延迟的远程调用。Netty是一款基于NIO(非阻塞I/O)的异步事件驱动的网络通信框架,常...

    基于Spring Boot框架的RPC服务框架.zip

    本项目是一个基于Spring Boot框架的RPC(远程过程调用)服务框架,旨在提供一个高效、可扩展的RPC服务解决方案。通过自定义协议、负载均衡、容错机制和SPI(服务提供者接口)等技术,实现了服务的高可用性和灵活性。...

    spring远程调用

    5. **客户端调用**:最后,客户端可以像调用本地对象一样调用远程服务。我们只需要获取HttpInvokerProxyFactoryBean创建的代理对象,然后直接调用接口方法即可。 ```java @Autowired private UserService ...

    Json-RPC & Spring MVC 集成

    集成JSON-RPC和Spring MVC,可以让JSON-RPC作为Spring MVC的一个服务端点,允许客户端通过JSON-RPC协议调用服务器上的方法。这样做有以下优势: 1. **简洁的接口定义**:JSON-RPC的调用方式简洁,只需要指定方法名...

    基于Spring的远程访问与Web Service

    标题与描述中提到的主题是“基于Spring的远程访问与Web Service”,这涉及到Spring框架在企业级应用中的关键特性——即其支持多种远程服务调用的方式,包括但不限于RMI、HTTP Invoker、Hessian、Burlap、JAX-RPC以及...

    Spring整合Hessian访问远程服务

    在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而Hessian则是一种高效的RPC(Remote Procedure Call)协议,它允许我们通过HTTP协议透明地调用远程服务,就像调用本地方法一样。本篇文章将深入探讨...

Global site tag (gtag.js) - Google Analytics