来源:网讯 | 2022-05-12 16:57:05 |
RPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络细节的应用程序通信协议。RPC协议构建于TCP或UDP,或者是HTTP上。允许开发者直接调用另一台服务器上的程序,而开发者无需另外的为这个调用过程编写网络通信相关代码,使得开发网络分布式程序在内的应用程序更加容易。
RPC采用客户端-服务器端的工作模式,请求程序就是一个客户端,而服务提供程序就是一个服务器端。当执行一个远程过程调用时,客户端程序首先先发送一个带有参数的调用信息到服务端,然后等待服务端响应。在服务端,服务进程保持睡眠状态直到客户端的调用信息到达。当一个调用信息到达时,服务端获得进程参数,计算出结果,并向客户端发送应答信息。然后等待下一个调用。
Go语言中的RPC支持与处理
在Go中,标准库提供的net/rpc包实现了RPC协议需要的相关细节,开发者可以很方便的使用该包编写RPC的服务端和客户端程序。这使得用Go语言开发的多个进程之间的通信变得非常简单
net/rpc包允许PRC客户端程序通过网络或者其他IO连接调用一个远程对象的公开方法(该方法必须是外部可访问即首字母大写)。在PRC服务端,可将一个对象注册为可访问的服务,之后该对象的公开方法就能够以远程的方式提供访问。
gRPC是一个高性能、开源、通用的RPC框架。基于HTTP/2协议标准设计开发,默认采用Protocol Buffers数据序列化协议Protocol Buffers基本语法,支持多种开发语言。gRPC提供了一种简单的方法来精确的定义服务,并且为客户端和服务端自动生成可靠的功能库。
2022-05-12 16:57:05
2022-05-07 16:47:44
2022-05-07 16:44:48
2022-05-07 16:39:35
2022-05-07 16:35:41
2022-05-09 20:00:52
2022-05-09 19:57:38
2022-05-09 19:54:09
2022-05-09 16:49:42
2022-05-09 16:47:42
2022-05-09 16:43:34
2022-05-09 16:39:09
2022-05-09 16:36:08
2022-05-09 16:33:24
2022-05-09 16:30:05
2022-05-09 16:24:04
2022-05-09 16:19:16
2022-05-09 16:15:30
2022-05-09 15:32:49
2022-05-09 14:00:47
2022-05-09 13:50:57
2022-05-09 13:44:05
2022-05-09 12:37:49
2022-05-09 11:59:39
2022-05-09 11:43:24
2022-05-09 11:43:14
2022-05-09 11:39:36
2022-05-09 11:31:53
2022-05-09 11:28:10
2022-05-09 11:27:46
2022-05-09 11:22:52
2022-05-09 11:17:05
2022-05-09 11:08:07
2022-05-09 11:01:21
2022-05-09 11:00:00
2022-05-09 10:59:05
2022-05-09 10:55:41
2022-05-09 10:01:55
2022-05-09 09:58:26
2022-05-09 09:54:30
2022-05-09 09:48:48
2022-05-09 09:48:35
2022-05-09 09:43:01
2022-05-09 09:37:41
2022-05-09 09:35:15
2022-05-09 09:28:45
2022-05-09 09:26:21
2022-05-09 09:18:36
2022-05-09 09:14:46
2022-05-09 09:11:18
2022-05-09 09:08:11
2022-05-09 09:01:41
2022-05-09 09:00:01
2022-05-09 08:57:40
2022-05-09 08:55:01
2022-05-09 08:52:05
2022-05-09 08:50:20
2022-05-09 08:48:53
2022-05-09 08:44:37
2022-05-09 08:41:55
2022-05-09 08:39:38
2022-05-09 08:36:44
2022-05-09 08:33:24
2022-05-09 08:30:29
2022-05-09 08:26:26
2022-05-09 08:26:24
2022-05-09 08:24:01
2022-05-09 08:19:24
2022-05-09 07:50:10
2022-05-09 07:39:28
2022-05-09 07:36:28
2022-05-09 05:50:55
2022-05-09 05:30:35
2022-05-09 05:22:48
2022-05-09 05:12:34
2022-05-09 05:09:25
2022-05-08 20:44:05
2022-05-08 18:28:54
2022-05-08 17:25:19
2022-05-08 13:48:17
2022-05-08 13:26:46
2022-05-08 13:02:33
2022-05-08 11:42:20
2022-05-08 10:54:25
2022-05-08 10:31:16
2022-05-08 06:03:34
2022-05-08 05:55:04
2022-05-08 05:49:44
2022-05-08 05:42:25
2022-05-08 05:32:55
2022-05-08 05:25:44
2022-05-08 05:24:54
2022-05-08 05:23:52
2022-05-08 05:22:43
2022-05-08 05:21:31
2022-05-08 05:17:00
2022-05-08 05:09:08
2022-05-07 21:01:22
2022-05-07 17:09:35
2022-05-07 17:06:00
2022-05-07 17:03:27
2022-05-07 16:58:20
2022-05-07 16:56:13
2022-05-07 16:50:31
2022-05-07 16:47:44