MyBatis整体架构分析:Rpc与RMI服务

本文详细介绍了Java RMI框架的基本使用,包括RMI的三大基本类,如何构建服务端、注册表和客户端。还探讨了自定义启动RMI注册表的方法。尽管RMI在现代互联网开发中已不再常用,但其思想和规范仍有学习价值。
摘要由CSDN通过智能技术生成

4.gRPC:gRPC是谷歌团队基于Netty开发实现的底层网络库,而此框架还有Go语言的版本,基于Net库开发

5.RMI:rmi可以说是java中最早的RPC框架之一,且此rpc框架由sun团队开发,集成于JDK中,可以说完全可以实现开箱即用,不需要任何外部jar依赖,但由于早期的rpc实现,且设计上并不是为了解决互联网企业类的高并发问题,所以不建议现在互联网开发中作为rpc实现

RMI框架基本使用

RMI既然是java团队设计出来的rpc框架,虽然现在已经不适合企业级生产使用,但是其中的思想和规范值得学习,我们就来看看RMI框架如何使用吧:

RMI三大基本类

实现RMI所需要的API基本都在三大类中,如下:

java.rmi:提供客户端需要的类、接口和异常;

java.rmi.server:提供服务端需要的类、接口和异常;

java.rmi.registry:提供注册表的创建以及查找和命名远程对象的类、接口和异常 ;

构建RMI服务端

首先在RMI中服务端供客户端调用的实例称之为远程对象,而在RMI中实现了java.rmi.Remote接口的类或者继承了java.rmi.Remote接口的都是RMI的远程对象。那么我们来定义一个接口,继承java.rmi.Remote

/**
 *用户处理器
**/
public interface UserHandler extends Remote {
   
    String getUserName(int id) throws RemoteException;
    String getUserPassWord() throws RemoteException;
    User getUserByName(String name) throws RemoteException;
}

这里需要注意的一点是,继承了Remote接口的接口中定义的所有的方法必须抛出RemoteException异常,并且该接口的实现类必须直接或者间接继承java.rmi.server.UnicastRemoteObject类,该类中提供了很多支持RMI的方法,可以通过JRMP协议导出一个远程对象的引用,生成动态代理构建的Stub对象,实现代码如下:

public class UserHandlerImpl extends UnicastRemoteObject implements UserHandler {
   
    //这里因为集继承了UnicastRemoteObject类,其构造器要抛出RemoteException,所以申明构造
    public UserHandlerImpl() throws RemoteException {
   
        super();
    }

    @Override
    public String getUserName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值