「Java轻量级rpc框架」java rpa

博主:adminadmin 2023-03-17 06:41:06 565

今天给各位分享Java轻量级rpc框架的知识,其中也会对java rpa进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

主流的RPC框架有哪些?

RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展。Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等。RPC还有一个特点就是能够跨语言。

1、RMI(远程方法调用)

JAVA自带的远程方法调用工具,不过有一定的局限性,毕竟是JAVA语言最开始时的设计,后来很多框架的原理都基于RMI,RMI的使用如下:

对外接口

span style="font-size:12px;"public interface IService extends Remote {  

  

    public String queryName(String no) throws RemoteException;  

  

}/span

服务实现

import java.rmi.RemoteException;  

import java.rmi.server.UnicastRemoteObject;  

  

// 服务实现  

public class ServiceImpl extends UnicastRemoteObject implements IService {  

  

    /** 

     */  

    private static final long serialVersionUID = 682805210518738166L;  

  

    /** 

     * @throws RemoteException 

     */  

    protected ServiceImpl() throws RemoteException {  

        super();  

    }  

  

    /* (non-Javadoc) 

     * @see com.suning.ebuy.wd.web.IService#queryName(java.lang.String) 

     */  

    @Override  

    public String queryName(String no) throws RemoteException {  

        // 方法的具体实现  

        System.out.println("hello" + no);  

        return String.valueOf(System.currentTimeMillis());  

    }  

      

}  

RMI客户端

[java] view plain copy

import java.rmi.AccessException;  

import java.rmi.NotBoundException;  

import java.rmi.RemoteException;  

import java.rmi.registry.LocateRegistry;  

import java.rmi.registry.Registry;  

  

// RMI客户端  

public class Client {  

  

    public static void main(String[] args) {  

        // 注册管理器  

        Registry registry = null;  

        try {  

            // 获取服务注册管理器  

            registry = LocateRegistry.getRegistry("127.0.0.1",8088);  

            // 列出所有注册的服务  

            String[] list = registry.list();  

            for(String s : list){  

                System.out.println(s);  

            }  

        } catch (RemoteException e) {  

              

        }  

        try {  

            // 根据命名获取服务  

            IService server = (IService) registry.lookup("vince");  

            // 调用远程方法  

            String result = server.queryName("ha ha ha ha");  

            // 输出调用结果  

            System.out.println("result from remote : " + result);  

        } catch (AccessException e) {  

              

        } catch (RemoteException e) {  

              

        } catch (NotBoundException e) {  

              

        }  

    }  

}  

RMI服务端

[java] view plain copy

import java.rmi.RemoteException;  

import java.rmi.registry.LocateRegistry;  

import java.rmi.registry.Registry;  

  

// RMI服务端  

public class Server {  

  

    public static void main(String[] args) {  

        // 注册管理器  

        Registry registry = null;  

        try {  

            // 创建一个服务注册管理器  

            registry = LocateRegistry.createRegistry(8088);  

  

        } catch (RemoteException e) {  

              

        }  

        try {  

            // 创建一个服务  

            ServiceImpl server = new ServiceImpl();  

            // 将服务绑定命名  

            registry.rebind("vince", server);  

              

            System.out.println("bind server");  

        } catch (RemoteException e) {  

              

        }  

    }  

}

2、Hessian(基于HTTP的远程方法调用)

基于HTTP协议传输,在性能方面还不够完美,负载均衡和失效转移依赖于应用的负载均衡器,Hessian的使用则与RMI类似,区别在于淡化了Registry的角色,通过显示的地址调用,利用HessianProxyFactory根据配置的地址create一个代理对象,另外还要引入Hessian的Jar包。

3、Dubbo(淘宝开源的基于TCP的RPC框架)

基于Netty的高性能RPC框架,是阿里巴巴开源的,总体原理如下:

Dubbo与Nacos的区别两者是不是有重叠?

没有重叠,只是两者侧重点不一样。Nacos主要功能集中在动态服务发现、服务配置、服务元数据及流量管理。你可以把他简单的理解为是一个注册中心和配置中心,而Dubbo是一款高性能、轻量级的开源Java服务框架,主要功能点在于RPC框架。

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力,面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。

监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示。服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销。

轻量级rpc框架Hessian

RPC远程服务调用在分布式项目架构中扮演着不可或缺的角色,近几年的运用也越来越广泛,主要目的旨在做到高可用的开发,RPC的相关框架有很多,比如阿里的Bubbo、HFS、脸书的Thrift、谷歌的grcp、推特儿的finagle、新浪的Montan以及avro、ice、rpcx、Harpc、hessian等。各个框架都有其各自的优缺点。

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

【开发注意】

Hessian的Demo

【客户端开发】

结构图

创建Web工厂HessianServer,添加hessian-3.0.1.jar包

User类

接口IBasicApi

接口实现类BasicService

配置servlet(接口URL的规定,通过URL调用接口)

启动server服务

【客户端开发】

结构图:

同样创建Java工程HessianClient,添加hessian-3.0.1.jar包

创建与服务端一致的com.lvfang.hessian.domain.User和com.mahc.hessian.service.impl.IBasicApi

测试类Test

调用结果

这样就完成了一个简单的跨服务调用

关于Java轻量级rpc框架和java rpa的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。