*由於篇幅限制,本文只能提供乙個簡單的使用流程,不會對具體的概念深入解釋
你至少需要了解的基本知識: php, composer, go, protobuf, grpc
#第一步:編寫 .proto 檔案
在本例中,我們定義乙個計算器類,擁有相加,相減兩個方法,以及定義引數和返回值的型別
syntax = "proto3
"; //
使用的proto3語法版本
package grpc_test; //
包名//
定義乙個服務,包含兩個方法
service calculator
rpc reduce (requestdata) returns (responsedata) {}}//
定義乙個請求型別
message requestdata
//定義乙個返回型別
message responsedata
#使用protoc編譯器編譯 .proto 檔案
protoc -i ./proto \./proto/grpc_test.proto \
--php_out=./php_src \
--go_out=plugins=grpc:./go_src \
--grpc_out=./php_src \
--plugin=protoc-gen-grpc=/opt/share/grpc_php_plug
該命令執行後,會在go_src下生成相關的go**,php_src下生成對應的php**
#利用生成的go**編寫grpc服務
package mainimport (
"context""
fmt"
"google.golang.org/grpc
"pb
"grpc_test/go_src"//
引入了生成的go**
"log""
net"
)func main()
s :=grpc.newserver()
pb.registercalculatorserver(s, &server{})
if err := s.serve(lis); err !=nil
}type server struct
func (s *server) add(ctx context.context, in *pb.requestdata) (*pb.responsedata, error) , nil
}func (s *server) reduce(ctx context.context, in *pb.requestdata) (*pb.responsedata, error) , nil
}
#編譯並執行**,服務就開始監聽了
#準備php環境
這一部分稍微就麻煩點,需要安裝兩個擴充套件grpc,protobuf 可以通過pecl安裝:
pecl installgrpc
pecl
install
protobuf
安裝後在對應的php.ini檔案中新增
extension=grpc.so
extension=protobuf.so
#編寫php客戶端呼叫**
use grpc\channelcredentials;
use grpc_test\calculatorclient;
use grpc_test\requestdata;
class grpctest
}如果一切順利,這裡應該列印出最終結果 20
#最後梳理一下整個流程
1.首先編寫proto檔案
2.生成對應的服務端和客戶端輔助**
3.借助輔助**編寫服務端和客戶端
gRPC的簡單Go例子
grpc是乙個高效能 通用的開源rpc框架,其由google主要面向移動應用開發並基於http 2協議標準而設計,基於protobuf protocol buffers 序列化協議開發,且支援眾多開發語言。grpc提供了一種簡單的方法來精確地定義服務和為ios android和後台支援服務自動生成可...
跨語言的GRPC呼叫
這次我們測試go與python之間的grpc呼叫。go作為grpc的客戶端,python作為grpc的服務端。第一步 安裝go的grpc工具 第二步 安裝python的grpc工具 pip install grpcio tools首先新建hello.proto檔案,該檔案很簡單,就是定義了乙個服務介...
Go微服務 grpc的簡單使用
我的是windows,將壓縮包bin目錄下的exe放到環境path目錄中即可。然後獲取外掛程式支援庫 grpc執行時介面編譯碼支援庫 從 proto檔案 grpc介面描述檔案 生成 go檔案 的編譯器外掛程式 go get u github.com golang protobuf protoc ge...