タグ

grpcに関するokinakaのブックマーク (5)

  • gRPC はじめからていねいに - Qiita

    はじめに 現在配属されているプロジェクトで、既存システムのマイクロサービス化対応を行っています。 その中でgRPCも使っているのですが、名前は聞いたことがあって、なんとなくは知っているけど、実際に触ったことがなかったので、これを機に基礎から学んでみようと思いました。 ということで、「完全に理解した」状態を一緒に目指しましょう! gRPCとは Googleが開発したRPC(Remote Procedure Call)1を実現するためのフレームワークです。 Protocol Buffersというバイナリ形式のシリアライズデータを利用し、データをシリアライズして高速な通信を実現します。 (Protocol Buffersがデファクトスタンダード) protoファイルと呼ばれるIDL(Interface Definition Language)にAPIの仕様を記述し、サーバサイドとクライアントサイ

    gRPC はじめからていねいに - Qiita
    okinaka
    okinaka 2023/12/16
  • Better gRPC な Connect に乗り換える - Go言語編

    デジタル認知行動療法アプリ Awarefy は、2022年4月からバックエンドシステムを Go + gRPC / Protocol Buffers を用いて開発・運用しています。現在進行中の Web アプリ開発のために、connect-go への切り替えが事実上必要になったため、grpc-go から connect-go へのマイグレーションを実行しました。 Connect とはそもそも Connect とはなにかですが、Better gRPC と理解するのがよいでしょう。 Getting started | ConnectConnect is a slim library for building browser- and gRPC-compatible HTTP APIs.ConnectConnect is a slim library for building browser- an

    Better gRPC な Connect に乗り換える - Go言語編
  • サービス間通信技術「gRPC」の基礎知識――「Protocol Buffers」とは?

    gRPCの概要 Googleによって開発され、オープンソース化された通信技術である「gRPC」は、マイクロサービスアーキテクチャにおけるサービス間の通信手段としてはもとより、モバイルアプリがサービスにアクセスするためのインタフェースとしても注目されています。現在ではLinux Foundation傘下のCloud Native Computing Foundation(CNCF)のもとで開発されています。 連載では、gRPCについて、さまざまなプログラミング言語によるアプリケーションの実装を通じて、技術的な仕様や開発手法を紹介していきます。 RPCとは? gRPCは、RPCという通信プロトコルです。RPCとはRemote Procedure Callの略で、日語にすると「遠隔手続き呼び出し」となります。RPCは、他の多くのプロトコルと同様にクライアント/サーバ型のモデルを採用しています

    サービス間通信技術「gRPC」の基礎知識――「Protocol Buffers」とは?
  • API 設計ガイド  |  Cloud APIs  |  Google Cloud

    フィードバックを送信 API 設計ガイド コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 変更履歴 はじめに これは、ネットワーク API の一般的な設計ガイドです。2014 年以来 Google 内部で使用され、Cloud API やその他の Google API を設計するときに Google が従うガイドです。この設計ガイドは、外部のデベロッパーへの情報提供と、互いの連携作業の効率化のためにここで共有されています。 Cloud Endpoints のデベロッパーには、このガイドは、gRPC API を設計するときに特に役立つことがあり、そのような場合にはこれらの設計原則を使用することを強くおすすめします。ただし、このガイドの使用は必須ではありません。Cloud Endpoints と gRPC はガイドに従わなくても使用できます。 このガイドは、gR

    API 設計ガイド  |  Cloud APIs  |  Google Cloud
  • Go言語で実装するプラグイン機構

    ソフトウェアに拡張性を持たせる時にプラグイン機構を持たせる事は一般的ですが、それを実現する方法は結構バラバラなのかなと思います。例えば、 C言語等の.so/.dllを読み込む方法 Nodejsのような言語での単なるimport TCPやUnixソケットを利用してRPC通信を行う方法 などが有るのかなと思います。1番目・2番目は、関数の呼び出し速度等のオーバーヘッドが少なく高速ですが、言語等の制約が大きくなる・メモリを共有することによるセキュリティリスクが発生します。そこで、提供するインターフェースを制約出来る場合は、3番目の手法が多く使われるようです。 Go言語で開発されている、hashicorp/terraform cloudfoundry/cli は共に3番目のRPC通信でプラグイン機構を実装しています。その中でもterraformで使用されているプラグイン機構は、言語への依存が低いと

    Go言語で実装するプラグイン機構
  • 1