インスピレーションと洞察から生成されました 20 ソースから

img6

img7

img8

img9

img10

img11

はじめに

  • gRPCは、複数の言語に対応した高性能なリモートプロシージャコール(RPC)フレームワークです。

  • gRPCは.NETとの統合で、高速で効率的なマイクロサービスを実現します。

  • .NETでは、gRPCサービスをASP.NET Core上でホストでき、ログ、依存性注入、認証、認可などのASP.NET Core機能と統合されます。

  • gRPCは、契約優先(Contract-First)アプローチを採用し、サービスとメッセージは.protoファイルで定義されます。

  • このプロジェクトでは、gRPCサーバーを作成し、クライアントを作成してそのサービスと通信させる方法を学ぶことができます。

  • 使用するためには、Grpc.AspNetCoreGrpc.Net.Client、Grpc.ToolsなどのNuGetパッケージが必要です。

  • サービスとクライアントはお互いに非同期通信を行い、プロトコル上はHTTP/2を使用します。

gRPC概要 [1]

  • gRPCは、高性能で複数言語に対応したRPCフレームワークで、Googleによって開発されました。

  • RPCを通じてリモートサーバーで関数を実行できる技術で、軽量なプロトコルバッファーを使用します。

  • クライアントとサーバー間の通信を効率化し、リアルタイムアプリケーションに適しています。

img6

img7

gRPCの利点 [1]

  • 高いパフォーマンスと軽量性を特徴とし、低レイテンシーで高スループットを提供します。

  • 言語に依存しない実装を可能にし、多くの開発言語に対応しています。

  • クライアント、サーバー、双方向のストリーミング通話をサポートします。

img6

img7

gRPCと.NETの統合 [2]

  • gRPCは.NET環境で簡単に使用でき、そこではHTTP/2を使用します。

  • ASP.NET Core上でgRPCサービスをホストすることで、既存のインフラに統合可能です。

  • ログや依存性注入、セキュリティ機能を標準ASP.NET Coreと統合します。

img6

img7

img8

gRPCプロジェクトの作成 [3]

  • Visual StudioやVS Codeを用いてgRPCプロジェクトを作成できます。

  • Visual Studioでは、新規プロジェクトとしてgRPCサービスを選択し、名前とターゲットフレームワークを設定します。

  • コマンドラインツールによるプロジェクト作成も可能で、dotnet new grpcコマンドを使用します。

img6

img7

img8

サービスとクライアントの実装 [3]

  • gRPCサービスとクライアントは.protoファイルを使用して定義されます。

  • Visual Studio内でプロジェクトテンプレートが提供され、簡単にgRPCサービスを開始できます。

  • クライアントではGrpcChannelを作成し、それを用いてサービスに接続します。

img6

img7

img8

パフォーマンスとセキュリティ [2]

  • gRPCはHTTP/2プロトコルを使用し、高速な通信を可能にします。

  • TLSを使用して通信のセキュリティを確保します。

  • 開発環境では自己署名証明書を信頼することで、セキュリティ警告を回避できます。

img6

NuGetパッケージの設定 [3]

  • gRPCプロジェクトでは、Grpc.AspNetCoreとGrpc.Net.Clientが必要です。

  • プロトコルバッファ用にGoogle.ProtobufとGrpc.Toolsも追加されます。

  • これらのパッケージをインストールするには、NuGetパッケージマネージャーを使用します。

img6

img7

img8

関連動画

<br><br>

<div class="-md-ext-youtube-widget"> { "title": "High-performance services with gRPC: What's new in .NET 7 ...", "link": "https://www.youtube.com/watch?v=et_2NBk4N4Y&pp=ygUGIzZncHJj", "channel": { "name": ""}, "published_date": "Nov 11, 2022", "length": "25:18" }</div>