阿里妹导读:在分布式系统中,远程调用是最基础也是最重要的基石。历史上,曾经先后出现过CORBA、RMI、EJB、WebService等技术和规范,在服务化以及微服务日趋流行的今天,更多的被广泛使用的是包括gRPC、Finagle、以及国内的Dubbo为代表的轻量级框架。
由于这些框架多半与服务注册中心、配置中心等配套设施结合使用,用来作为系统分布式服务化的场景,因此这类框架又被统称为服务框架。本文将以Dubbo为例,介绍如何快速开发一个Dubbo应用。
同时,阿里妹也要告诉上海朋友一个好消息:6月23号下午(周六),Dubbo团队将会在上海举办开发者沙龙,详细信息、活动报名,可点击文末“阅读原文”了解。
本文作者:北纬团队
背景
本文将以Dubbo为例,介绍如何快速开发一个Dubbo应用。为了便于读者理解:
首先会介绍一下传统的RMI的基本概念然后比较下现代的RPC框架与RMI的区别再基于Dubbo提供的API展示最基本的Dubbo应用如何开发最后介绍如何通过start.dubbo.io快速搭建Dubbo的脚手架工程
JavaRMI简介
JavaRMI(RemoteMethodInvocation)远程方法调用,能够让客户端像使用本地调用一样调用服务端Java虚拟机中的对象方法。RMI是面向对象语言领域对RPC(RemoteProcedureCall)的完善,用户无需依靠IDL的帮助来完成分布式调用,而是通过依赖接口这种更简单自然的方式。
JavaRMI工作原理
一个典型的RMI调用如下图所示:
服务端向RMI注册服务绑定自己的地址;客户端通过RMI注册服务获取目标地址;客户端调用本地的Stub对象上的方法,和调用本地对象上的方法一致;本地存根对象将调用信息打包,通过网络发送到服务端;服务端的Skeleton对象收到网络请求之后,将调用信息解包;然后找到真正的服务对象发起调用,并将返回结果打包通过网络发送回客户端。
(来源: