接口调用方式1

简介: 接口调用方式1

JAVA 项目中,RPC调用方式和协议


RPC(Remote Procedure Call)远程过程调用是一种通过网诺从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。它允许客户端以本地调用的方式请求服务,使得网诺服务的使用就像本地函数一样简单,从而简化分布式系统不同服务之间的交互。


RPC的基本工作原理:


  • 客户端通过RPC接口发送请求:客户端通过RPC接口发送请求到服务器,请求中包含了要调用的方法名称,参数等信息
  • 服务器处理请求:服务器端接收到请求后,根据请求中的方法名称和参数调用相应的服务,执行相应的业务逻辑。
  • 服务器返回结果:服务器执行相应的业务逻辑后,将结果返回给客户端。


RPC协议的特点‌包括:


  • ‌跨语言和跨平台‌:RPC协议允许不同编程语言和平台之间的程序进行通信,促进了异构系统间的集成。
  • ‌高性能‌:由于RPC直接调用远程服务,避免了数据序列化和反序列化的开销,通常比HTTP等基于HTTP的RESTful API具有更高的性能。
  • ‌易于使用‌:RPC提供了统一的接口给客户端,使得客户端无需关心底层网络通信的细节,简化了分布式系统的开发。


HTTP协议请求的代码大致如下:

@RestController
@RequestMapping("/http")
public class HttpCilentController {
    
    @GetMapping("/getHello")
    String gethello(){
        //声明响应类
        HttpResponse execute = null;
        //创建http服务端实例
        HttpClient client = HttpClients.createDefault();
        //发送请求
        HttpGet get = new HttpGet("http://localhost:8080/test/hello");
        try {
             execute = client.execute(get);
        }catch (IOException e){ e.printStackTrace();}
        //获取响应体
        HttpEntity entity = execute.getEntity();
        //工具了解析
        String str = null;
        try {
            str = EntityUtils.toString(entity, "utf-8");
        }catch (IOException e){e.printStackTrace();}
        //这里的String就是一个json字符串,如果该字符串是一个类免责需要再次使用工具如jackson,fastjson将josn字符串转为类。
 
        return str;
    }
    
}
目录
相关文章
|
算法 应用服务中间件 Go
国密算法证书及CFCA操作流程
国密算法证书及CFCA操作流程
4403 0
|
存储 Oracle Unix
关于小机 | 计算机百年趣味史(上)第8篇
小机即小型机(minicomputer),从名字上我们可以知道是体积会较小的机器,不过体积也是针对大机(mainframe)来说是,如果光从绝对体积上讲,那显然又不对。所以,小机是对特定时代一群类似机器的统称。我们来看下小机的关键历史。其历史时间是与大型机并行的。
2918 0
关于小机 | 计算机百年趣味史(上)第8篇
|
4月前
|
存储 关系型数据库 MySQL
【赵渝强老师】使用select...into outfile语句备份MySQL
本文介绍了MySQL中使用`SELECT...INTO OUTFILE`语句将表数据导出为文本文件的方法。通过示例演示了如何备份员工表(emp)的数据,包括创建存储目录、设置权限、配置参数`secure_file_priv`以及解决相关错误的过程。字段分隔符和行终止符可自定义,确保数据格式符合需求。最后展示了备份文件的内容,验证操作成功。
290 36
|
弹性计算
阿里云国际版ECS云服务器欠费会自动释放吗?
阿里云国际版ECS云服务器欠费会自动释放吗?
|
数据安全/隐私保护
阿里云国际版忘记会员名或登录密码,怎么办?
阿里云国际版忘记会员名或登录密码,怎么办?
|
9月前
|
人工智能 Cloud Native 安全
圆桌会议:聚焦AI时代机遇下操作系统产业的进化与重构 | 2024龙蜥大会主论坛
2024龙蜥大会主论坛聚焦AI时代的操作系统产业进化与重构。专家们围绕开源社区建设、商业化衍生、替代方案及AI应用等议题展开讨论。中国工程院陈纯院士强调开源社区的重要性,阿里云蒋江伟提出操作系统的兼容性和包容性,AMD潘晓明表示将加强国际合作,中兴通讯刘东则探讨了操作系统与AI的深度融合。会议一致认为,龙蜥操作系统应抓住AI发展机遇,构建安全可靠的生态体系,推动国产操作系统走向国际化。
172 3
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 Distinct
【8月更文挑战第12天】
1505 4
在 MySQL 中使用 Distinct
|
算法 vr&ar C#
使用Unity进行虚拟现实开发:深入探索与实践
【8月更文挑战第24天】使用Unity进行虚拟现实开发是一个充满挑战和机遇的过程。通过掌握Unity的VR开发技术,你可以创造出令人惊叹的VR体验,为用户带来前所未有的沉浸感和乐趣。随着技术的不断进步和应用场景的不断拓展,VR开发的未来充满了无限可能。希望本文能为你提供有用的指导和启发!
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之当需要将数据从ODPS同步到RDS,且ODPS表是二级分区表时,如何同步所有二级分区的数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
253 7
|
XML Java 开发者
【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之SpringBoot整合众多日志管理系统服务starter-logging
【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之SpringBoot整合众多日志管理系统服务starter-logging
540 1