欢迎回来,每一个人! 在本讲座中,我们将发现gRPC的一些用例以及它与REST的比较。

Here's the link to the full gRPC course playlist on Youtube
Gitlab repository: pcbook-go and pcbook-java

Types of gRPC

gRPC有4种类型:

最简单的一个是Unary,其中客户端发送1个单一请求消息,服务器回复1个单一响应。 这看起来与普通的HTTP REST API相似。

然后,我们进行客户端流式处理。 在这种情况下,客户端将发送多个消息流,并且它希望服务器仅发送回1个单个响应。

gRPC是否比REST更好? 在哪里使用?

类似地,我们进行服务器流传输,其中客户端仅发送1条请求消息,并且服务器以多个重播流进行响应。

最后是双向(或双向)流。 这是最复杂的,因为客户端和服务器将继续以任意顺序并行发送和接收多个消息。 它非常灵活且无阻塞,这意味着在发送下一封邮件之前,无需任何一方等待响应。

这是gRPC中4种不同通讯方式的高级概述。 我们将在后面的动手讲座中回到这一点,在那里我们将实现每个人,以加深理解。

gRPC vs REST

现在,让我们快速比较一下gRPC和REST,以了解它们之间的差异。

首先,众所周知,gRPC使用HTTP / 2,它比REST中使用的HTTP / 1.1快得多。 请注意,今天我们也可以在REST中启用HTTP / 2,但是通常它通常与HTTP / 1.1一起使用。 您可以在这些文章中阅读有关如何为REST启用HTTP / 2的更多信息:

其次,gRPC使用协议缓冲区序列化有效载荷数据,该数据是二进制且较小的,而REST使用JSON(文本是较大的)。

gRPC中的API合同非常严格,要求在原始文件中明确定义。 在REST中时,它通常是宽松且可选的。 我们可以根据需要通过OpenAPI对其进行定义,但这不是强制性的。

借助协议缓冲区编译器,代码生成内置在gRPC中。 在REST中时,我们必须使用OpenAPI和Swagger等第三方工具。

gRPC是否比REST更好? 在哪里使用?

gRPC和REST通信均通过TLS / SSL进行保护。

在gRPC中,流是双向的,而在REST中,从客户端到服务器的请求只有一种方式。

因此,到目前为止,gRPC在大多数方面都比REST好。 但是,有一件事是REST仍然更好,

That is browser support. While REST is fully supported by all browsers, the support for gRPC is limited and required gRPC-web with a proxy layer to convert between HTTP/1 and HTTP/2.

Where to use gRPC?

因此,gRPC具有很多优点,但也有其自身的缺点。 那么,我们应该在何时何地使用gRPC以便充分利用它?

就像您可能已经猜到的那样,微服务是gRPC真正发挥作用的地方,因为它可以实现低延迟和高吞吐量的通信以及强大的API合同。

gRPC还适用于多语言环境,因为它为许多编程语言提供了开箱即用的代码生成功能。

gRPC是否比REST更好? 在哪里使用?

点对点实时通信也是gRPC的好地方,因为它对双向流提供了出色的支持。

最后,由于gRPC的消息格式较轻,因此它是对网络受限的环境(例如移动应用程序(android / ios))的理想选择。

好了,现在您已经完成了gRPC课程的所有理论讲座。 恭喜你! 希望您喜欢它,并在动手讲座中见到您。

from: https://dev.to//techschoolguru/is-grpc-better-than-rest-where-to-use-it-3blg

相关文章:

  • 2021-09-19
  • 2021-12-16
  • 2021-09-09
  • 2021-05-18
  • 2022-12-23
  • 2021-10-11
  • 2021-08-23
猜你喜欢
  • 2021-07-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-04
  • 2022-12-23
  • 2021-07-20
  • 2021-05-21
相关资源
相似解决方案