BT

gRPC 1.0は製品使用の準備ができている

| 作者: Abel Avram フォローする 10 人のフォロワー , 翻訳者 笠原 王徳 フォローする 0 人のフォロワー 投稿日 2016年8月28日. 推定読書時間: 2 分 |

原文(投稿日:2016/08/24)へのリンク

Googleは、安定しており製品に使用可能だと思われるgRPC 1.0をリリースした。

gRPCはStubbyと呼ばれるGoogleの内部プロジェクトとして開始し、Googleの内部サービス内の通信に使用された。Googleは18か月前にこのフレームワークをオープンソース化した。これはGoogle外部での採用や、Googleのサービスを使用する際に利用することを意図しており、インターネットもしくは内部の製品のために他のサービスと通信することができる。

gRPCはプラットフォーム独立のシステムであり、エンドポイントサービスと送信ペイロードの定義にProtocol Buffers IDLを用い、複数言語のスタブを生成する。gRPCは10の言語をサポートする。CC++C#GoJava (Java/Androidを含む)、Node.js, Objective-CPHPPython、それとRubyであり、Linux、Mac、Windowsがサポートされる。ネイティブ実装はC、GoとJavaであり、他の言語用にCライブラリのラッパが用意される。Googleはパフォーマンスダッシュボードを用意しており、同じデータセンタ内の2つのVMインスタンス間の様々なgRPC通信の遅延を見ることができる。単一のセキュアな同期メッセージの場合、約100usとなっているNetperfの結果を基準として、C++、Java、C#の実装は約200-300usであり、Ruby、Python、Node.jsはそれぞれ700、900、1100usである。

送信メッセージはProtocol Buffers 3.0のバイナリ形式でシリアライズされており、テキスト形式よりパフォーマンスが良くなっている。JSONに比較して、Protobufはメッセージサイズを半分に、シリアライズ/デシリアライズの時間を3分の1に削減できるとGoogleエンジニアのKelsey Hightower氏は述べている。

1つのリクエストとそれに続くレスポンスから構成される単一のRPCの代わりに、gRPCはクライアントとサーバ間で単方向もしくは双方向のストリーミングを提供するのにHTTP/2を使用している。通信には同期・非同期の両方が使用でき、SSL/TLSもしくは(Google APIによる)OAuth2による認証をサポートしている。

インストールは単純化されており、CocoaPods、gem、Gradle、Maven、npm、NuGet、pecl、pip、それからDockerイメージによりgRPCのバイナリが提供されている。

Googleによると、Cisco、CoreOS、Juniper、Netflix、そしてSquareが内部的にgRPCを使用している。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT