#author("2020-04-03T13:12:42+00:00","default:admin","admin") -[[gRPCって何?:https://qiita.com/oohira/items/63b5ccb2bf1a913659d6]] -[[Go で実装しながら gRPC を理解する:https://reboooot.net/post/hello-grpc/]] -[[gRPCのフロー制御を試してみた:https://www.techscore.com/blog/2019/09/24/grpc%E3%81%AE%E3%83%95%E3%83%AD%E3%83%BC%E5%88%B6%E5%BE%A1%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/]] -[[gRPCを用いたマイクロサービスのAPI仕様の記述:https://tech.mercari.com/entry/2019/05/31/040000]] -[[マイクロサービスにおけるWeb APIスキーマの管理 ─ GraphQL、gRPC、OpenAPIの特徴と使いどころ:https://employment.en-japan.com/engineerhub/entry/2019/08/22/103000]] -[[gRPCを使ってPairsのchatを高速にしたお話:https://medium.com/eureka-engineering/grpc%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6pairs%E3%81%AEchat%E3%82%92%E9%AB%98%E9%80%9F%E3%81%AB%E3%81%97%E3%81%9F%E3%81%8A%E8%A9%B1-ada759635486]] -[[ロボットエンジニアのためのgRPC入門:https://myenigma.hatenablog.com/entry/2019/06/23/143321]] -[[gRPCでインターフェースを再整理してからサービスを分割─freeeの段階的なマイクロサービス戦略:https://employment.en-japan.com/engineerhub/entry/2020/03/30/103000]] -[[gRPC streamingをつかうとマイクロサービスの責務が整理できるし省コネクションでメリットあるよね、という話:https://blog.soushi.me/entry/2017/03/17/125049/]] -[[Go + gRPCによるマイクロサービス構築:https://user-first.ikyu.co.jp/entry/2019/06/17/100000]] *概要 [#g747aa65] -RPCでは、IDL(インターフェース定義言語)を使ってあらかじめAPI仕様を .proto ファイルとして定義し、そこからサーバー側&クライアント側に必要なソースコードのひな形を生成する -言語に依存しないIDLで先にインタフェースを定義することで、様々なプログラミング言語の実装を生成できるというメリットがある -通信プロトコルには HTTP/2 が使われる --HTTP/2 が使われているので、クライアントとサーバー間のリクエストとレスポンスは 1:1 だけでなく 1:* や *:* などの通信が可能 --クライアントからのリクエストで複数のメッセージを投げられて、サーバーから複数メッセージを返すなどの通信が可能になる --HTTP/2 の機能の1つであるストリーム(同一の TCP 接続でクライアントとサーバーが双方向にデータをやりとり出来る仕組み)のおかげ -Protocol buffers でデータをシリアライズ化してやりとりする -型付けされたメッセージの他に key-value(value は複数設定可能)で定義可能なメタデータというものも存在しており、HTTP ヘッダのように扱うことができる --利用例としては、不正なリクエストかの判断を行うための認証情報や、複数のサービスを横断する処理をトレースする ID などをハンドリングするケースが挙げられる **[[Protocol Buffers:https://developers.google.com/protocol-buffers]] [#macab43b] -[[ロボットエンジニアのためのProtocol buffers入門:https://myenigma.hatenablog.com/entry/2019/06/09/125326]] *ASP.NET Core gRPC [#f97826c5] -[[WCF 開発者向け ASP.NET Core gRPC:https://docs.microsoft.com/ja-jp/dotnet/architecture/grpc-for-wcf-developers/]] -[[.NET Core の gRPC の概要:https://docs.microsoft.com/ja-jp/aspnet/core/grpc/?view=aspnetcore-3.0]] -[[.NET Core 3.0 で gRPC がシームレスに統合されて素晴らしい件:https://blog.ecbeing.tech/entry/2019/09/24/114040]] -[[gRPC vs. WCF:https://tnakamura.hatenablog.com/entry/2018/07/10/grpc-versus-wcf]]