`
bleakoasis
  • 浏览: 4430 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

自己动手开发【RPC框架】【山寨Hessian】

阅读更多
先声明一下

1、我承认是标题党
2、这不是在这重复讲轮子的故事,最近空闲中研读了一下hessian源码,只是在借助例子分析一下RPC原理,通过例子更容易理解一些,对于程序员来讲,源码就是最好的文档

    言归正传,分布式服务架构中,一个最基础的问题就是服务器之间的通信,java有很多实现远程通信的技术,如RMI、MINA、WebService、Hessian、PHPRPC(这名起的有点白痴)等
    具体原理描述不在本文范围内,但每个RPC技术都离不开这两点:传输的数据格式、传输协议,本文主要是通过具体实践来理解RPC原理,刚刚说到数据格式和传输协议,Hessian自己定义了一套二进制传输格式,本例子没有花费精力去定制一套格式,偷个懒捡个现成的json格式,将所有的请求、返回都转换成json格式,以字符串的形式与远程服务交互,与RPC-XML类似,以后哪天也试试二进制格式,呵呵,至于传输协议和hessian一样也是基于http协议
    源码、例子都在附件当中,时间仓促只在jdk1.6、tomcat6环境下测试的,也难免存在bug,不过基本例子绝对能够跑通,对于理解RPC原理还是足够用的 呵呵

在这里也算是抛砖引玉吧,供有兴趣的朋友一起讨论
使用方法与hession类似,本例子使用步骤如下:
1、将war发布到tomcat下,启动tomcat
2、运行TestClient即可
3、自己定制新的服务(例子提供的HelloImpl)与hession类似,在web.xml里进行配置



//测试代码

import oasis.client.OasisProxyFactory;

public class TestClient {
	public static void main(String[] args) throws Exception {

		//别忘记换成自己tomcat的端口啊
		String url = "http://localhost:8090/oasis_rpc/test.oasis";
		//通过OasisProxyFactory生产远程调用的服务
		OasisProxyFactory factory = new OasisProxyFactory();
		Hello hello = (Hello) factory.create(Hello.class, url);
		TestBean bean = new TestBean();
		//调用远程服务
		System.out.println("远程调用结果: " + hello.seeHello(bean).getName());
		System.out.println("name:" + bean.getName());
	}
}
  • 大小: 24.4 KB
分享到:
评论
2 楼 3694826 2011-03-08  
也介绍一个

http://code.google.com/p/rpcfx/
1 楼 yin_bp 2011-03-08  
可以尝试使用一下开源项目bbossgroups中的rpc框架和mvc框架,都有rpc的很好实现,呵呵:
bboss group project sourceforge site url:
http://sourceforge.net/projects/bboss/files/

相关推荐

    基于netty的手写rpc框架

    在本项目中,我们将基于Netty实现一个手写的RPC框架。Netty是Java领域的一个高性能、异步事件驱动的网络应用程序框架,常用于构建高效的服务器和客户端。 首先,我们需要理解RPC框架的基本组成部分: 1. **服务...

    RPC框架底层模拟

    RPC(Remote Procedure Call)框架是分布式系统中广泛使用的通信机制,它允许一个程序在不关心远程服务器具体实现的情况下调用其方法,就像调用本地对象一样。本篇将深入探讨RPC框架的底层模拟,主要围绕以下几个...

    如何用Netty写一个自己的RPC框架

    在开发一个使用Netty作为基础的RPC框架之前,我们需要了解几个重要的知识点: ***ty的核心概念:Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。它的核心组件包括...

    自定义rpc框架

    自定义RPC(Remote Procedure Call)框架是软件开发中的一个重要领域,它允许程序在不同的网络节点间进行通信,仿佛调用本地方法一般。本项目旨在通过深入研究Netty和Zookeeper来构建一个类似Dubbo的RPC框架,从而...

    hessian轻量级 rpc实现

    通过学习和研究这个示例项目,开发者可以更好地理解Hessian的工作流程,以及如何在自己的项目中部署和使用Hessian RPC。 总结,Hessian作为一种轻量级的RPC解决方案,以其高效、简单和易于集成的特性在分布式系统中...

    基于dubbo实现的rpc框架RPC 框架

    基于Dubbo实现的RPC框架,是Java开发中常见的一种高效率、高性能的服务治理方案,尤其在微服务架构中广泛应用。 Dubbo是由阿里巴巴开源的高性能RPC框架,它提供了服务注册、服务发现、负载均衡、流量控制、熔断降级...

    java基于RPC框架的阶乘计算客户端与服务端

    常见的Java RPC框架有Hessian、Dubbo、gRPC等,它们都提供了自动序列化、网络传输、服务发现等核心功能。 项目结构可能包括以下部分: 1. **服务端**:实现阶乘计算的业务逻辑,创建一个服务接口,定义计算阶乘的...

    RPC 框架学习 好的参考学习

    RPC(Remote Procedure Call)框架是分布式系统中广泛使用的通信机制,它允许一个程序在不关心远程服务器具体实现的情况下,调用远程服务器上的方法,就像调用本地方法一样。本篇文章将深入探讨RPC框架的核心概念、...

    40_如何设计一个类似dubbo的rpc框架?架构上该如何考虑?.zip

    在IT行业中,设计一个类似于Dubbo的RPC(远程过程调用)框架是一项复杂而重要的任务。RPC框架使得分布式系统中的不同服务能够透明地调用彼此的功能,仿佛它们都在同一个进程中运行。以下是一些关于如何设计这样一个...

    基于Java的源码-高性能RPC框架 nfs-rpc.zip

    在Java中,RPC框架如Hessian、Dubbo、gRPC等已经非常成熟,而nfs-rpc可能是针对特定场景或需求进行优化的版本。这里我们将深入探讨基于Java的RPC框架设计与实现的关键技术点。 1. **序列化与反序列化**:在RPC调用...

    Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis

    本文主要讨论的是如何将Hessian RPC与RMI技术整合到Structs、Spring、Hibernate和Ibatis这四个关键的Java开发框架中,以构建一个高效、灵活的分布式应用程序。 1. **Hessian配置说明**: Hessian的配置通常涉及...

    myRpc一个极简单的RPC框架

    在这个名为“myRpc”的项目中,我们看到作者提供了一个非常基础的RPC实现,它可能是为了帮助学习者理解RPC的基本原理和工作流程,以及对比更成熟的框架如Hessian。 首先,我们要了解RPC的基本概念。RPC框架的核心...

    dubbo-rpc-hessian-2.8.4.jar

    java运行依赖jar包

    RPC框架的研究报告

    RPC框架的研究,主要是Hessian和其它框架的对比,从性能、易用性等方面着手分析。

    RPC框架+json+反射+注解annonation

    常见的RPC框架有Dubbo、gRPC、Hessian、Thrift等。这些框架提供了高性能、低延迟的通信机制,例如HTTP/2、TCP自定义协议等。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...

    snake-rpc:基于 Hessian 的增强型 RPC 框架,能够重用方法调用返回的远程对象

    蛇形rpc 一个基于 Hessian 的 RPC 框架( ) “蛇”这个名字来自中国蛇的动物年(2013年)。 与hessian相比,snake-rpc有几个新特点: 能够序列化 InputStream/OutputStream; 无限的 InputStream/OutputStream 参数...

    手写RPC框架1

    此外,还有其他序列化框架,如Hessian(Caucho公司开发)、FST(Fast Serialization Toolkit)和Avro,它们各有优缺点,适用于不同的应用场景。 动态代理在RPC中扮演着关键角色,它使得客户端可以像调用本地方法...

    最简单的RPC框架源码.zip

    在这个"最简单的RPC框架源码"中,我们可以深入理解RPC的基本原理和实现机制。本文将详细讲解RPC框架的关键组成部分以及它们在Java中的应用。 首先,我们要明白RPC的核心思想:本地调用的感觉。在RPC框架中,客户端...

    Dubbo RPC框架原理解析和源码

    Dubbo是一款由阿里巴巴开源的高性能Java RPC框架,它在分布式系统中起到了服务调用的核心作用。RPC(Remote Procedure Call)允许一个程序调用另一个在不同网络计算机上的程序,就像调用本地函数一样简单。Dubbo的...

    基于java的高性能RPC框架 nfs-rpc.zip

    本教程将深入探讨基于Java实现的高性能RPC框架——nfs-rpc,它旨在提供高效、易用且可扩展的解决方案。 一、RPC框架的核心概念 1. 客户端(Client):发起RPC调用的一方,通常在本地系统上运行,需要调用远程服务...

Global site tag (gtag.js) - Google Analytics