rpc java demo_gRPC之java语言的简单Demo

最近由于项目需要,就简单看了下gRPC入门,使用起来挺简单的。这里就顺便记录一下,便于后面回顾。

RPC是什么

说到RPC(Remote Process Communication,远程过程调用)就不得不说到进程间通信(Inter-process Communication,简称IPC),IPC是指多个进程之间传送数据或信号的一些技术或方法。

而IPC又分为本地过程调用(LPC)和远程过程调用(RPC),这两者的区别就是 LPC的调用可以共享内存空间,比较方便;而RPC的调用双方则不在同一个主机中,无法像LPC那样方便。

说到底,RPC就是在本地来 调用远程的方法。而RPC框架要做的就是 让远程调用 像本地调用一样方便,而这个调用过程则是RPC框架需要做的工作。这个工作涉及到大概 两个方面:序列化协议和 传输协议。

1、常见的序列化协议有:

基于文本(text)的:XML、JSON

基于二进制(binary)的: Protocol Buffer、Thrift等2、常见的传输协议有:

传输层的: TCP(基于Socket)、UDP

应用层的:HTTP1.1、HTTP2.0

而RPC框架中,通常使用的序列化协议包括Protocol Buffer、Thrift等,传输协议则常用TCP、HTTP2.0等。

更多的内容可以参考博客:

gRPC框架

上面简单介绍了RPC机制的作用,现如今已经出现了许多优秀的RPC框架,比如:gRPC、Dubbo、Thrift等。这些框架在 序列化协议和传输协议两部分都有不同的选择,各有优劣。不过,没必要全部都去学习一遍,可以简单尝试一种,大概了解运行机制即可。

下面是以gRPC的简单使用为例,了解gRPC的运行过程和用法。

gRPC使用的序列化协议是 Protocol Buffer,使用的传输协议是 HTTP2.0协议。

需要清楚的是,

gRPC的通信方式需要先确定好proto文件,这个proto文件中定义了远程api的具体服务接口、api方法的参数类型/返回值类型;

然后,将该proto文件编译为 java类文件,这些类文件包含的就是 client端 和 server端都遵循的 远程调用api的定义内容。

接着,client端 和 serve

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值