草庐IT

RPC和GRPC

全部标签

RPC设计应该使用哪种网络IO模型?

网络通信在RPC调用中起到什么作用呢?RPC是解决进程间通信的一种方式。一次RPC调用,本质就是服务消费者与服务提供者间的一次网络信息交换的过程。服务调用者通过网络IO发送一条请求消息,服务提供者接收并解析,处理完相关的业务逻辑之后,再发送一条响应消息给服务调用者,服务调用者接收并解析响应消息,处理完相关的响应逻辑,一次RPC调用便结束了。可以说,网络通信是整个RPC调用流程的基础。1常见网络I/O模型两台PC机之间网络通信,就是两台PC机对网络IO的操作。同步阻塞IO、同步非阻塞IO(NIO)、IO多路复用和异步非阻塞IO(AIO)。只有AIO为异步IO,其他都是同步IO。1.1同步阻塞I/

RPC设计应该使用哪种网络IO模型?

网络通信在RPC调用中起到什么作用呢?RPC是解决进程间通信的一种方式。一次RPC调用,本质就是服务消费者与服务提供者间的一次网络信息交换的过程。服务调用者通过网络IO发送一条请求消息,服务提供者接收并解析,处理完相关的业务逻辑之后,再发送一条响应消息给服务调用者,服务调用者接收并解析响应消息,处理完相关的响应逻辑,一次RPC调用便结束了。可以说,网络通信是整个RPC调用流程的基础。1常见网络I/O模型两台PC机之间网络通信,就是两台PC机对网络IO的操作。同步阻塞IO、同步非阻塞IO(NIO)、IO多路复用和异步非阻塞IO(AIO)。只有AIO为异步IO,其他都是同步IO。1.1同步阻塞I/

技术选型:如何选择REST、GraphQL 和 gRPC

REST、GraphQL和gRPC是现代Web应用程序中最流行的3种API开发技术。那么在做技术选型时,三者要如何选择呢?在本文中,我们将一起对比REST、GraphQL和gRPC的特性和用法。REST——最流行的技术RESTRepresentationalStateTransfer(REST)是现代Web开发中最流行的API开发技术。它是一个无状态的数据传输架构。客户端请求时会包含该请求所需的所有详细信息,但是服务器不保留客户端的状态。RESTAPI支持HTTP原生缓存header并使用HTTP方法(POST、GET、PUT、PATCH和DELETE)来操作数据。因为REST的学习门槛较低,

技术选型:如何选择REST、GraphQL 和 gRPC

REST、GraphQL和gRPC是现代Web应用程序中最流行的3种API开发技术。那么在做技术选型时,三者要如何选择呢?在本文中,我们将一起对比REST、GraphQL和gRPC的特性和用法。REST——最流行的技术RESTRepresentationalStateTransfer(REST)是现代Web开发中最流行的API开发技术。它是一个无状态的数据传输架构。客户端请求时会包含该请求所需的所有详细信息,但是服务器不保留客户端的状态。RESTAPI支持HTTP原生缓存header并使用HTTP方法(POST、GET、PUT、PATCH和DELETE)来操作数据。因为REST的学习门槛较低,

gRPC 中的异常该如何处理?

今天来和小伙伴们聊一聊该如何处理gRPC中遇到的异常。在之前的几篇文章中,其实我们也遇到过异常问题,只是当时没有和小伙伴们细说,只是囫囵吞枣写了一个案例而已,今天我们就来把这个话题跟小伙伴们仔细捋一捋。我们之前写过一个登录的案例,在之前的案例中,如果用户在登录时输入了错误的用户名密码的话,那么我们是通过一个普通的数据流返回异常信息,其实,对于异常信息,我们可以通过专门的异常通道来写回到客户端。1.服务端处理异常先来看看服务端如何处理异常。还是以我们之前的gRPC登录案例为例,我们修改服务端的登录逻辑如下(完整代码小伙伴们可以参考之前的 手把手教大家在gRPC中使用JWT完成身份校验 一文):p

gRPC 中的异常该如何处理?

今天来和小伙伴们聊一聊该如何处理gRPC中遇到的异常。在之前的几篇文章中,其实我们也遇到过异常问题,只是当时没有和小伙伴们细说,只是囫囵吞枣写了一个案例而已,今天我们就来把这个话题跟小伙伴们仔细捋一捋。我们之前写过一个登录的案例,在之前的案例中,如果用户在登录时输入了错误的用户名密码的话,那么我们是通过一个普通的数据流返回异常信息,其实,对于异常信息,我们可以通过专门的异常通道来写回到客户端。1.服务端处理异常先来看看服务端如何处理异常。还是以我们之前的gRPC登录案例为例,我们修改服务端的登录逻辑如下(完整代码小伙伴们可以参考之前的 手把手教大家在gRPC中使用JWT完成身份校验 一文):p

技术选型:如何选择REST、GraphQL 和 gRPC

REST、GraphQL和gRPC是现代Web应用程序中最流行的3种API开发技术。那么在做技术选型时,三者要如何选择呢?在本文中,我们将一起对比REST、GraphQL和gRPC的特性和用法。REST——最流行的技术RESTRepresentationalStateTransfer(REST)是现代Web开发中最流行的API开发技术。它是一个无状态的数据传输架构。客户端请求时会包含该请求所需的所有详细信息,但是服务器不保留客户端的状态。RESTAPI支持HTTP原生缓存header并使用HTTP方法(POST、GET、PUT、PATCH和DELETE)来操作数据。因为REST的学习门槛较低,

技术选型:如何选择REST、GraphQL 和 gRPC

REST、GraphQL和gRPC是现代Web应用程序中最流行的3种API开发技术。那么在做技术选型时,三者要如何选择呢?在本文中,我们将一起对比REST、GraphQL和gRPC的特性和用法。REST——最流行的技术RESTRepresentationalStateTransfer(REST)是现代Web开发中最流行的API开发技术。它是一个无状态的数据传输架构。客户端请求时会包含该请求所需的所有详细信息,但是服务器不保留客户端的状态。RESTAPI支持HTTP原生缓存header并使用HTTP方法(POST、GET、PUT、PATCH和DELETE)来操作数据。因为REST的学习门槛较低,

TLS+gRPC怎么玩?如何让自己的RPC通信更加安全?

今天我们要在前文的基础之上,来和小伙伴们聊一聊如何确保gRPC的通信安全。确保gRPC的通信安全我们有很多种不同的方式,其中一种,就是对通信过程进行加密,使用上TLS。对于TLS如何加密,如何协商密钥,这些我这里就不再啰嗦了,我在之前的文章中都已经介绍过了。咱们就直接来看具体的玩法。这块整体上可以分为两大类:启用单向安全连接启用mTLS安全连接我们分别来看。1.启用单向安全连接单向安全连接其实就是说只需要客户端校验服务端,确保客户端收到的消息来自预期的服务端,整个的校验就涉及到我们前文所说的TLS、CA等内容了,具体流程是这样:首先我们先在自己电脑本地生成一个自签名的CA证书。利用这个CA证书

TLS+gRPC怎么玩?如何让自己的RPC通信更加安全?

今天我们要在前文的基础之上,来和小伙伴们聊一聊如何确保gRPC的通信安全。确保gRPC的通信安全我们有很多种不同的方式,其中一种,就是对通信过程进行加密,使用上TLS。对于TLS如何加密,如何协商密钥,这些我这里就不再啰嗦了,我在之前的文章中都已经介绍过了。咱们就直接来看具体的玩法。这块整体上可以分为两大类:启用单向安全连接启用mTLS安全连接我们分别来看。1.启用单向安全连接单向安全连接其实就是说只需要客户端校验服务端,确保客户端收到的消息来自预期的服务端,整个的校验就涉及到我们前文所说的TLS、CA等内容了,具体流程是这样:首先我们先在自己电脑本地生成一个自签名的CA证书。利用这个CA证书