-
rpc使服务之间的方法调用像本地一样,感知不到网络通信的存在。
-
rpc是基于tcp协议的,但grpc是基于http2协议的。http2的好处是公开通用。
-
rpc主要有两个工作,序列化(对象转换为二进制,用于网络传输),编解码(被调用方收到数据包,需要知道他的方法名,输入参数在数据包的起始位置等)
-
grpc中函数中的context参数是啥意思
在 gRPC 中,函数中的
context
参数是用于传递上下文信息的对象。它提供了一种在不同的函数调用之间共享状态、传递截止时间、取消信号以及其他相关信息的方式。context
参数通常被用作第一个参数传递给 gRPC 服务方法。通过
context
,可以实现以下功能:- 截止时间控制:可以设置请求的截止时间,当超过截止时间时,gRPC 框架可以自动取消请求。
- 取消请求:可以通过
context
发送取消信号,通知正在进行的请求取消操作。 - 传递元数据:可以在
context
中添加键值对形式的元数据,这些元数据可以在服务端和客户端之间进行传递。 - 共享状态:可以在
context
中存储和共享一些与请求相关的状态信息。context
的使用使得 gRPC 服务能够更好地处理并发请求、超时情况和取消操作,同时也方便了在不同函数之间传递相关的上下文信息。
-
context.abort()
context.abort()
是 gRPC 框架中用于终止 RPC(Remote Procedure Call)调用的方法。它可以在服务器端或客户端使用,用于在出现错误或异常情况时,主动中断正在进行的 RPC 调用,并向对方发送一个错误状态码和可选的详细信息。 以下是context.abort()
的一般用法:- 在服务器端,当服务器在处理 RPC 调用时遇到错误或异常情况,可以调用
context.abort()
来终止该调用。这将导致客户端收到一个错误响应,并可以根据错误状态码进行相应的处理。 - 在客户端,当客户端发现与服务器的连接出现问题或 RPC 调用超时等情况时,也可以调用
context.abort()
来中断调用。 通过使用context.abort()
,可以在 gRPC 通信中及时处理错误情况,并提供更明确的错误反馈。这样可以帮助开发者更好地处理异常情况,增强系统的健壮性和可靠性。
- 在服务器端,当服务器在处理 RPC 调用时遇到错误或异常情况,可以调用