什么是GRPC

grpc在Java中的应用

    • 什么是grpc?
    • grpc相对于以往的通讯有什么优点?

什么是grpc?

grpc是谷歌提供的一种服务间的通讯协议,本质上是一个高性能的、开源的、普遍通用的RPC框架.
用 grpc官网的原话去解释这个:
在 gRPC 中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的方法,就像它是本地对象一样,使您更容易创建分布式应用程序和服务。与许多 RPC 系统一样,gRPC 基于定义服务的思想,指定可以远程调用的方法及其参数和返回类型。在服务端,服务端实现这个接口并运行一个 gRPC 服务器来处理客户端调用。在客户端,客户端有一个存根(在某些语言中仅称为客户端),它提供与服务器相同的方法。
什么是GRPC_第1张图片
gRPC 客户端和服务器可以在各种环境中运行和相互通信——从 Google 内部的服务器到您自己的桌面——并且可以用任何 gRPC 支持的语言编写。因此,例如,您可以使用 Go、Python 或 Ruby 中的客户端轻松地在 Java 中创建 gRPC 服务器。此外,最新的 Google API 将具有其接口的 gRPC 版本,让您可以轻松地将 Google 功能构建到您的应用程序中。
其实当你理解到其中的工作原理之后你会发现其实grpc就是类似于http这一类协议,主要是你去在grpc的服务当中给定一个端口号,在这个端口号中定义不同的服务,而客户端只需要访问端口中的服务就能实现掉用了.

grpc相对于以往的通讯有什么优点?

为何会出现grpc?

  1. 微服务设计过程中,采用http传输数据的话,服务间需要重复实现序列化与反序列化的操作;同时数据的载体大多也是选择json,xml或者其他格式,这就会使得服务性能消耗大大提升…
  2. http是一种在应用层完成通讯代价较高的通讯方式.

为什么选择使用grpc?
3. grpc是谷歌开源的,比较重要的原因在于grpc开源免费,白嫖真想定理.
4. grpc是通过protobuf去产生底层代码进而运用的,而protobuf又不作语言区分

话说这么多最重要的是grpc在Java中怎么用?
grpc之proto文件编写
参考地址:https://www.grpc.io/docs/

你可能感兴趣的:(微服务之grpc-1,java,开发语言)