分布式架构基础之Java RMI详解,正式加入阿里巴巴

本文深入探讨了Java RMI(远程方法调用)在分布式架构中的应用,通过实例展示了如何使用Scala和Java实现RMI,包括创建Registry、绑定对象以及客户端调用。文中还提到了序列化在RMI中的重要性,以及如何处理不同JVM之间的通信。此外,作者分享了自己的职业经历,从上海交大毕业到在大厂如华为、OPPO和阿里巴巴的工作经验,强调了技术积累和面试准备的重要性。
摘要由CSDN通过智能技术生成

}

@Override

public String helloWorld(String name) {

return "[Registry] 你好! " + name;

}

}

客户端:

public class RegistryClient {

public static void main(String[] args) {

try {

Registry registry = LocateRegistry.getRegistry(1099);

HelloRegistryFacade hello = (HelloRegistryFacade) registry.lookup(“HelloRegistry”);

String response = hello.helloWorld(“ZhenJin”);

System.out.println(“=> " + response + " <=”);

} catch (NotBoundException | RemoteException e) {

e.printStackTrace();

}

}

}

图解:

出处:https://www.tutorialspoint.com/java_rmi/java_rmi_introduction.htm

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Registry(注册表)是放置所有服务器对象的命名空间。

每次服务端创建一个对象时,它都会使用bind()或rebind()方法注册该对象。

这些是使用称为绑定名称的唯一名称注册的。

要调用远程对象,客户端需要该对象的引用,如(HelloRegistryFacade)。

即通过服务端绑定的名称(HelloRegistry)从注册表中获取对象(lookup()方法)。

(2) 使用Naming方法实现rmi

服务端:

public class NamingService {

public static void main(String[] args) {

try {

// 本地主机上的远程对象注册表Registry的实例

LocateRegistry.createRegistry(1100);

// 创建一个远程对象

HelloNamingFacade hello = new HelloNamingFacadeImpl();

// 把远程对象注册到RMI注册服务器上,并命名为Hello

//绑定的URL标准格式为:rmi://host:port/name

Naming.bind(“rmi://localhost:1100/HelloNaming”, hello);

System.out.println(“======= 启动RMI服务成功! =======”);

} catch (RemoteException | MalformedURLException | AlreadyBoundException e) {

e.printStackTrace();

}

}

}

接口和接口实现和Registry的方式一样

客户端:

public class NamingClient {

public static void main(String[] args) {

try {

String remoteAddr=“rmi://localhost:1100/HelloNaming”;

HelloNamingFacade hello = (HelloNamingFacade) Naming.lookup(remoteAddr);

String response = hello.helloWorld(“ZhenJin”);

System.out.println(“=> " + response + " <=”);

} catch (NotBoundException | RemoteException | MalformedURLException e) {

e.printStackTrace();

}

}

}

Naming部分源码:

public static Remote look

  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值