Grpc-Golang&Grpc-Java

2553 ワード

このノートは主に学習過程を記録してどのように使うのではありません~、およびprotobuffersとgprcの各種のドキュメントの住所、上半期を過ぎた後にこのノートを通じて自分で急速にこの技術点を再掌握することを助けます
一、Protocolbuffers
protocolbuffersについてもともと1篇のノートの品質を書いたことがあって悪くなくて、本編のノートは繰り返し書きません:クリックして見ます
以下に、protocbuffersがmacに取り付けたときに踏んだ穴を記録します.
公式サイト:https://developers.google.com/protocol-buffers
protocダウンロードアドレス:https://github.com/protocolbuffers/protobuf/releases
自分が何をしているのかを明らかにする~protobufをプロトコルと理解することができます.彼の文法規範に従ってxxx.protoファイルを書いた後、protocを使ってやっとそれをコンパイルして特定の言語のコードを生成することができます~だからこのprotocはきっとインストールを免れられません
ダウンロードして使いやすいように~/.bash_profileにPATHを追加
vim ~/.bash_profile

#      :
export PATH:/Users/dxm/protobuf/protoc-3.12.2-osx-x86_64/bin/protoc

#          
source .bash_profile

#       protoc  
which protoc
/Users/dxm/protobuf/protoc-3.12.2-osx-x86_64/bin/protoc

しかし、変数を~/.bash_に配置することに気づきました.profileでは常にセッションレベルなので、ウィンドウを変えると役に立ちません.
だから~/.zshrcを使って配置することをお勧めします.ない場合は、手動で新規作成しても構いません.
上のprotocはほとんどの言語のコードを生成することができます.特定の言語に対するコードを生成したい場合は、このリンクをクリックします.https://github.com/protocolbuffers/protobuf/releases
二、Grpc
  • 公式サイト:https://www.grpc.io/
  • grpcの概要:https://www.grpc.io/docs/what-is-grpc/introduction/
  • grpcの核心概念:https://www.grpc.io/docs/what-is-grpc/core-concepts/
  • quick-start:https://www.grpc.io/docs/languages/java/quickstart/


  • 2.1 About-Java
  • githubアドレス(jarパッケージとコード生成のプラグインを見つけることができます):https://github.com/grpc/
  • コマンド:mvn compileでコンパイル
  • 生成コードをmavenコンパイルする前提:作成したxxx.protoファイルを/src/main/ディレクトリの下
  • に配置する必要がある.
  • コンパイル処理された生成物は、target/generated-sources/
  • に位置する.
  • GrpcServerとGrpcStubの間でどのような方法でデータを対話できますか?
  • インタラクティブオブジェクト情報
  • stubはobjを送信し、serverはstream
  • を返す.
  • stubはstreamを送信し、serverはobj
  • を返す.
  • stubとserverの間でstreamインタラクション

  • JavaがGrpcを使用する例を次に示します.
    proto定義:https://github.com/zhuchangwu/oa-springboot/tree/master/src/protobuf
    テストコード:https://github.com/zhuchangwu/oa-springboot/tree/master/src/test/java/com/changwu/flowCenterTest
    2.2 About-Golang
    まずxxx.protoファイルを作成しますxxx.protofをGOにコンパイルできるプラグインのダウンロードを実行します.
    # protoc-gen-go      /go/bin/
    
    go get github.com/golang/protobuf/protoc-gen-go
    

    クイックスタート:grpc公式サイト(demoとxxx.protoをgoコードにコンパイルするコマンドが入っています)を参照https://www.grpc.io/docs/languages/go/quickstart/
    golangを使用してclientとserver間の4つの通信モードを完了します.https://github.com/zhuchangwu/oa-golang-flow-center/commits/master