美文网首页
grpc初探

grpc初探

作者: 轻舞凋零 | 来源:发表于2022-08-07 20:23 被阅读0次

1 grpc的定义

grpc good rpc

grpc使用protobuf文件声明服务,服务端和客户端都通使用该文件生成代码

syntax = "proto3";
package ecommerce;

service ProductInfo {

    rpc addProduct(Product) returns (ProductId);
    rpc getProduct(ProductId) returns (Product);
}

message Product {
    string id = 1;
    string name = 2;
    string description = 3;
}

message ProductId{
    string value = 1;
}

protoc来生成服务端和客户端的代码

客户端-服务端的消息流

  • 使用protocol buffer,并将rpc请求编排(marshal)为pb格式,使用http2进行发送
  • 服务端会被解排(unmarshal),对应的调用过程通过protocol buffers来执行

2 进程间通信技术的演化

传统的RPC

  • CORBA通用对象请求代理体系结构
  • 远程方法调用

SOAP

  • 简单对象访问协议

REST

  • 描述性状态迁移
    • 基于文本的低效消息协议
    • 应用程序之间缺乏强类型接口
    • rest架构风格难以强制实施

gRPC的起源

3 现实世界中的grpc

Netflix

  • 效率提升
  • 性能提升

etcd

  • 关键因素在于其API简单,定义良好,易于使用

Dropbox

  • 基于grpc构建了框架Courier

Lyft
Square
Docker

加入CNCF

grpc的优势

  • 提供高效的进程间通信
  • 强类型
  • 多语言
  • 支持双工流
  • 内置的商业化特性(认证,加密,弹性,元数据交换,压缩,负载均衡,服务发现)
  • 与云原生生态系统进行了集成(envoy,prometheus)
    grpc的确定
  • 不太适合面向外部的服务
  • 巨大的服务定义变更是复杂的开发流程
  • 生态较小

相关的技术

  • thrift性能更强,生态差一点
  • graphQL面向外部的api

相关文章

  • GRPC初探

    文章写在Cmd Markdown上,链接过来: [作业部落]GRPC初探

  • gRPC初探

    资源 [1] gRPC Java Example 关键词 高性能,开源,双向流式,多开发语言支持,Apache 2...

  • grpc初探

    1 grpc的定义 grpc good rpc grpc使用protobuf文件声明服务,服务端和客户端都通使用...

  • Go语言初探gRPC服务

    环境:2018-05-12 protoc 3.5.1 go1.10.1 windowsgRPC: Google...

  • grpc-源码-网络模型

    golang 的grpc库是 https://github.com/grpc/grpc-go grpc serve...

  • gRPC 4种rpc定义方法与3种stub介绍

    gRPC 有关gRPC官方介绍(https://www.grpc.io/docs/what-is-grpc/int...

  • gRPC安装与编译

    1.安装gRPC grpc与protobuf版本对照表:https://github.com/grpc/grpc/...

  • grpc 2022-11-28

    grpc[https://grpc.io/docs/what-is-grpc/introduction/] In ...

  • gRPC简介

    本文翻译自gRPC简介[https://grpc.io/docs/what-is-grpc/introductio...

  • [译]gRPC over HTTP2

    gRPC over HTTP2 原文:https://github.com/grpc/grpc/blob/mast...

网友评论

      本文标题:grpc初探

      本文链接:https://www.haomeiwen.com/subject/zttiwrtx.html