服务的远程调用

服务的远程调用

远程调用: RPC
跨 JVM
主要分为:

  • 基于HTTP协议(其实是对二进制流的一种封装)
  • 基于二进制协议
    • 阿里 dubbo : http://dubbo.apache.org/zh-cn/
    • gRPC
    • Thrift

基于二进制流的实现原理是:
服务提供方有一个实现了接口A的方法m1,在服务调用方只需要有对应的接口A即可调用方法m1,过程中先将m1的参数在调用方进行序列化,通过Tcp/IP进行传输二进制流,在提供方接收到参数后进行反序列化,调用方法m1,然后再将结果序列化返回给调用方

基于Html协议下使用的一种方式

Spring下使用RestTemplate实现单点远程调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Java服务远程调用本地打印机,可以使用Java的RMI(远程方法调用)技术。RMI允许Java程序在不同的JVM(Java虚拟机)之间进行通信,可以在远程JVM上调用本地对象的方法。 以下是大致的步骤: 1. 定义一个实现打印机功能的Java类,并将其打包成JAR文件。 2. 在服务器端创建一个RMI服务,将打印机类的JAR文件发布到RMI服务上。 3. 在客户端通过RMI服务获取打印机类的实例,并调用其方法打印文档。 具体实现步骤如下: 1. 编写一个打印机类,实现打印文档的方法。例如: ```java public class PrinterImpl implements Printer { public void print(String document) throws RemoteException { // 连接本地打印机,打印文档 // ... } } ``` 2. 将打印机类打包成JAR文件。 3. 在服务器端创建一个RMI服务,将打印机类的JAR文件发布到RMI服务上。例如: ```java public class PrinterServer { public static void main(String[] args) throws RemoteException { // 创建一个RMI服务 LocateRegistry.createRegistry(1099); // 创建打印机对象 Printer printer = new PrinterImpl(); // 将打印机对象绑定到RMI服务上 Naming.rebind("rmi://localhost/PrinterService", printer); System.out.println("Printer service is running..."); } } ``` 4. 在客户端通过RMI服务获取打印机类的实例,并调用其方法打印文档。例如: ```java public class PrinterClient { public static void main(String[] args) throws RemoteException, MalformedURLException, NotBoundException { // 获取远程打印机对象 Printer printer = (Printer) Naming.lookup("rmi://localhost/PrinterService"); // 调用打印方法 printer.print("Hello, world!"); System.out.println("Print document successfully."); } } ``` 需要注意的是,要在服务器端和客户端都添加打印机类的JAR文件作为依赖。另外,要确保服务器端和客户端的代码都能访问到该JAR文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值