码迷,mamicode.com
首页 > 编程语言 > 详细

RPC框架研究(一)Java回调机制

时间:2015-07-23 00:43:43      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

报名了阿里中间件性能大赛,我来说是一个全新的挑战,一切从空白学起,比赛的过程也是学习的过程

是的,想让自己学好,给自己报一个比赛吧~ 

就像当初学围棋,也是报了围棋比赛,为了不至于输的太惨,一个星期里学了好多东西


第一天 Java回调机制


首先还是来看看赛事介绍

比赛总共分为两道题:"RPC"与"MOM”,两题都需完成。我们会对"RPC"成绩(qps)进行排名,排名前100位的队伍有资格进入MOM的比赛环节,若未进入前100名直接淘汰,最终名次由"MOM"成绩决定 。

赛题

首先解决RPC的,从今天开始,边学变解决这个问题

RPC赛题

一个简单的RPC框架

RPC(Remote Procedure Call )——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

框架——让编程人员便捷地使用框架所提供的功能,由于RPC的特性,聚焦于应用的分布式服务化开发,所以成为一个对开发人员无感知的接口代理,显然是RPC框架优秀的设计。

题目要求

1.要成为框架:对于框架的使用者,隐藏RPC实现。

2.网络模块可以自己编写,如果要使用IO框架,要求使用netty-4.0.23.Final。

3.支持异步调用,提供future、callback的能力。

4.能够传输基本类型、自定义业务类型、异常类型(要在客户端抛出)。

5.要处理超时场景,服务端处理时间较长时,客户端在指定时间内跳出本次调用。

6.提供RPC上下文,客户端可以透传数据给服务端。

7.提供Hook,让开发人员进行RPC层面的AOP。

衡量标准

满足所有要求。性能测试。


基础的RPC知识这里就不提了,同学们自己参考  RPC

实现基础的RPC框架也不难,主要使用了动态代理技术,简单说就是把客户端调用的方法代理到服务器端中执行,服务器端返回执行结果给客户端


难点在于 异步调用、返回异常类型、处理超时场景等


首先开始解决异步调用问题,如何实现异步框架,参考 http://www.cnblogs.com/Hybird3D/p/3346582.html


要实现异步调用,首先又得掌握Java回调


回调问题,有点类似于ajax的原理,把自己传递给对方,当对方要传递数据给自己时,直接调用自己的方法就可以了

参考

http://hellosure.iteye.com/blog/1130176


今天先学习了Java的回调原理,明天使用它来做出异步RPC框架


版权声明:本文为博主原创文章,未经博主允许不得转载。

RPC框架研究(一)Java回调机制

标签:

原文地址:http://blog.csdn.net/hzy38324/article/details/47011903

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!