gRPCのサンプルコードをNode.jsで動かしてみる




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

gRPCとは

2015年にGoogleが開発したHTTP2.0ベースのプロトコルです。データのシリアライズにはProtocolBuffersがデフォルトで使われています。

特徴として下記があります。

  • Streemが使える(単方向、双方向)
  • C++, Java, Node.js, Goなど多くの言語でgRPCをサポート
  • テキストベースのHTTP/1.1と異なりバイナリベースのHTTP/2.0を使っているので高速

Protocol Buffers

構造化データをバイト列に変換(シリアライズ)するソフトウェアで、バイナリを扱うのでプログラミング言語に依存しません。またDSLから生成されたソースコードを使用して、様々なデータストリームとプログラミング言語を使用して構造化データを簡単に読み書きできるようになります。最近だとgRPCと一緒に使われることが多いみたいです。

サンプルコード

サンプルコードは本家gRPCのGitHubのものです。Node.jsはv8.10.0を使っています。

Protpcol Buffersの定義を下記helloworld.protoにしています。helowworld.protoにはserviceとmessageを定義しています。

messageにはリクエスト時に送るデータとレスポンスで帰ってくるデータを定義し、serviceにはgRPCサーバで実行するservce名とリクエストとレスポンスのデータをマッピングしています。

greeter_client.jsからgRPCサーバにリクエストします。.protoで定義したsayHelloを呼び出しています。

greeter_server.jsには実際いsayHelloのserviceを実装し、gRPCサーバに登録しています。

1対1のリクエストとレスポンス方式だとすごく簡単ですね。初見でも読めないところはないし、結構簡単に実装できそうです。

Streem通信を行ってみる

ここは出来次第追記します!

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です