首页 > 其他分享 >gRPC

gRPC

时间:2024-01-23 20:56:18浏览次数:25  
标签:package gRPC proto -- go grpc

proto

protobuf是Google开源的一款支持跨平台、语言中立的结构化数据描述和高性能序列化协议,此协议完全基于二进制,所以性能要远远高于JSON/XML。由于出色的传输性能所以常见于微服务之间的通讯,其中最为著名的是Google开源的 gRPC 框架。

proto 文件格式

syntax = "proto3";                      // 声明使用proto3语法
package hello;                          // 声明package以防止protocol message类型之间的名称冲突

option go_package = "gxyan.com/proto/hello";    // 声明生成的go文件的package
option java_package = "com.gxyan.grpc";         // 声明java文件的package

service HelloService {
  rpc Hello (HelloRequest) returns (HelloReply);
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

使用

下载Protocol Buffers,安装protobuf的Go编译插件及grpc插件

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

此处记得设置GOPATH环境变量

protoc --go_out=. --go_opt=paths=source_relative hello.proto
protoc --go-grpc_out=. --go-grpc_opt=paths=source_relative hello.proto

Protocol Buffer Basics: Go

gRPC-GUIDE

标签:package,gRPC,proto,--,go,grpc
From: https://www.cnblogs.com/gxyan/p/17983399

相关文章

  • 国产的AI基础设施与国外的差距?仅以grpc与prpc做比较
    搞AI,基础设施包括软件、硬件以及相关生态,多方面,这里只片面的取一个例子来说明国内外在AI基础设施上的区别,注意,这里只是片面截取。高性能的rpc框架是搞AI的一个基础依赖软件,当然,国外也有与之可以替代的mpi框架,不过这两个都是老美的。对于mpi,老美一直是开源的,国内也没有任何一家企......
  • 在wpf项目中实现基于Grpc.AspNetCore.Server库的grpc server功能
     前言1.Grpc.Core库的维护到2024.10,之后应该是不再维护了,后续推荐使用Grpc.Net.Client和Grpc.AspNetCore.Server这两个库代替。相关声明信息可以在此处看到,https://grpc.io/blog/grpc-csharp-future/2.当前工作的项目需求是在同一个局域网的多个wpf,通过grpc进行通讯,一个wpf作......
  • grpc是基于http/2协议的高性能的rpc框架
    师傅领进门,修行在个人,跟着官方脚手架demo了grpc后,之后就需要扩展前后知识边界,下面总结grpc的前世今生和最佳实践。https://www.cnblogs.com/JulianHuang/p/14441952.htmlgrpc是基于http/2协议的高性能的rpc框架为什么已经有http?还需要grpc?八股文都说grpc是基于http2的rpc框......
  • 【dotnet】啥?这家伙写gRpc 居然没有pb文件
    使用.NET的代码优先gRPC服务和客户端当整个系统使用.NET时,代码优先是一个不错的选择:可以在.NET服务器和客户端之间共享.NET服务和数据协定类型。无需在 .proto 文件和代码生成过程中定义协定。不建议在具有多种语言的polyglot系统中使用代码优先。.NET服务......
  • gRPC .proto文件解析
    .proto文件解析书接上回,创建了hello_grpc.proto文件后对其中参数进行解释,还是以上次的代码为案例syntax="proto3";optiongo_package="./;hello_grpc";packagehello_grpc;messageReq{stringmessage=1;}messageRes{stringmessage=1;}serviceHell......
  • Grpc的内部原理、优缺点
    gRPC是一个高性能、开源和通用的RPC框架,面向移动和HTTP/2设计。gRPC默认使用protocolbuffers,这是Google开源的一套成熟的结构数据序列化机制(也可使用其他数据格式如JSON)基于go的一种远程过程调用,RPC框架的目标就是让远程服务调用更加简单、透明,RPC框架负责屏蔽底......
  • php 在laravel中集成grpc
    在laravel中集成使用grpc一、安装:1、macOSphp扩展:peclinstallgrpc,peclinstallprotobufprotocbuf:brewinstallprotobufetcd:brewinstalletcd2、ubuntu:php扩展:peclinstallgrpc(如果遇到[Makefile:1038:src/core/lib/comp......
  • 何时使用GraphQL、gRPC 和 REST
    何时使用GraphQL、gRPC和REST     在设计应用程序时,开发人员可以从各种客户端-服务器通信协议中进行选择。使用GraphQL、gRPC和REST在当代项目中相对常见。每种协议都可以提供各种优势,具体取决于您的应用需求。      一.GraphQL是一种灵活的数据请求方法,它专......
  • grpc使用nginx代理配置
    参考:https://www.nginx.com/blog/nginx-1-13-10-grpc/重点是标记红色的部分http{log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"'......
  • 【Python小随笔】 Grpc协议的使用
    定义接口//test.protosyntax="proto3";optioncc_generic_services=true;serviceGreeter{//第一个接口rpcOne(OneRequest)returns(OneResponse){}//第二个接口rpcTwo(TwoRequest)returns(TwoResponse){}}//第1个接口请求值messageOn......