並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 242件

新着順 人気順

grpcの検索結果121 - 160 件 / 242件

  • BufとProtobufで始めるモダンgRPC開発

    Protocol Buffers(Protobuf)を用いた開発(主にgRPC)にはprotocのようなコンパイラが長い間使われてきました。 コード生成やドキュメントの作成、REST APIとしてのゲートウェイの実装など便利で柔軟なprotocプラグインが利用できる一方、そのためのコード生成コマンドは複雑になりがちです。 こういったProtobufを用いた開発に関わるさまざまな問題をBufは解決するためにBuf CLIやBuf Schema Registry、Connectプロトコルなどさまざまなツールやプロトコルを開発しました。 本書ではBufが開発したさまざまなツールやプロトコルを使用し、現代的でモダンなProtobuf開発について紹介します。

      BufとProtobufで始めるモダンgRPC開発
    • Announcing Dapr v1.0

      By Dapr project maintainers | Wednesday, February 17, 2021 Today we are excited to announce the v1.0 release of the Distributed Application Runtime (Dapr), which has achieved the stability and enterprise readiness to be designated production ready. Dapr is an open source, portable, event-driven runtime that makes it easy for developers to build resilient, microservice, stateless and stateful appli

      • 2022年はネイティブ×gRPCが激アツかもしれん

        CyberAgent AI事業本部 DXエンジニアの EFEXP です。 先日久しぶりにAndroidでgRPCを触りました、3年前に触ったときと比べて劇的に開発者体験が改善されており、みなさんにもgRPCを使ってほしくなりました。 しばらく触っていて、もしかして2022年はモバイルエンジニアにとってgRPCが激アツかもと思ったので共有させてください。 gRPC Kotlinしか触っていないのでgRPC Swiftの話は参考程度に聞いてください。 gRPCがモバイル領域でいま激アツな理由 2022年、私はモバイル開発のクライアント・サーバー間通信でgRPCを用いるタイミングが来たと考えています。 もともとモバイルネイティブアプリとgRPCの相性はよいはずですが、2020年ごろまではバージョン更新によってすぐ互換性が壊れるほどエコシステム全体が不安定な状況でした。 この安定性の欠如はモバイル

          2022年はネイティブ×gRPCが激アツかもしれん
        • フロントエンドエンジニアが最低限知っておきたい gRPC のこと - Qiita

          はじめに 受託開発企業でフロントエンドエンジニアを1年ほどやっているものです。直近2ヶ月間 gRPC を使用する案件にアサインされたのですが、「フロントエンドエンジニア視点からみた gRPC 」 に関する記事が少なく、キャッチアップするのにかなり苦労しました。この記事では「フロントエンドエンジニア」 が gRPC について最低限知っておかないといけない概念や技術などをざっくり解説したいと思います。 この記事の対象者 フロントエンドエンジニアで gRPC 案件に突然アサインされた人 フロントエンドエンジニアで gRPC について知りたい人 フロント側から見た gRPC について知りたい人 この記事で触れないこと メリット / デメリットとか マイクロサービスがどうこうとか REST との比較とか その他の深い内容 おさらい この記事に辿り着く前に色々調べて既にご存知の方もいらっしゃるかと思い

            フロントエンドエンジニアが最低限知っておきたい gRPC のこと - Qiita
          • KamonによるAPM導入 - Akka gRPCを用いたScalaアプリケーション編 - ZOZO TECH BLOG

            計測プラットフォーム部バックエンドチームの鈴木です。 この記事では、Akka gRPCを利用しているScalaアプリケーションのZOZOMATに対してKamonを通じてAPMを導入した際に得られた知見、うまくいかなかった内容やその対応策を紹介します。 Akkaとは 最初にAkkaについて簡単に紹介します。Akkaは、JVM上で並行および分散アプリケーションの構築を容易にするツールキットとランタイムです。 Actorモデルの実装であるAkka Actorsを中心とし、Akka StreamsやAkka HTTP、Akka Clusterなど様々なツールが提供されています。詳しくは公式ドキュメントやAkka実践バイブルを読むことで深く理解できます。書籍で紹介されているAkkaのAPIは、今では古いものとなっていますが、Akkaの楽しさを知るにはとても良い本です。 私たちが開発しているZOZOM

              KamonによるAPM導入 - Akka gRPCを用いたScalaアプリケーション編 - ZOZO TECH BLOG
            • PythonでgRPCサービスを開発する――サーバサイドストリーミングとは?

              PythonでgRPCサービスを開発する――サーバサイドストリーミングとは?:スキマ時間にこっそり学ぶ「gRPC」入門(4) 第4回は、Pythonでストリーミング型のgRPCサービスを開発してみます。ここでは、幾つかあるストリーミング型のうち、サーバからの複数レスポンスとなるサーバサイドストリーミングを実装してみます。

                PythonでgRPCサービスを開発する――サーバサイドストリーミングとは?
              • tRPCの便利だった機能

                nextと組み合わせるのをやりながら見つけた便利だった部分についての列挙 マージ機能 https://trpc.io/docs/merging-routers Routerの部分が肥大化してしまいそうだなというのが結構懸念だったが、mergeする機能があるのでこれは便利そうだった。 const appRouter = createRouter() .merge('user.', users) .merge('post.', posts) Infering Types https://trpc.io/docs/infer-types Routerなどの各種定義からTypeScriptの型を取り出す機能。 ちょっと記述が面倒なところはあるが、AppRouterの返り値や入力値が抽出できるので、一通り覚えておくと便利。 (とはいえinputについてはzodのinferを利用する方がスッキリするよ

                  tRPCの便利だった機能
                • Amazon EKSでAWS App Meshを利用してgRPCサーバーを運用する | Recruit Tech Blog

                  こんにちは、スタディサプリENGLISH SREグループの横山です。 以前の記事1) スタディサプリENGLISHの基盤をECSからEKSに移行しましたにあるように、先日ついにスタディサプリENGLISHのインフラ基盤をECSからEKSに移行することができました。 本記事では、このEKS移行に伴いAWS App Mesh(以下、AppMesh)の導入をしたので、これに関連した話を書いていきたいと思います。 なぜAppMesh導入を検討し始めたか インフラ基盤がECSだった頃、gRPCの負荷分散にEnvoyとAmazon ECS Service Discoveryを利用していました。この構成については以下の記事に詳細があります。 EnvoyとAmazon ECS Service Discoveryを利用したgRPCの負荷分散 この構成にした当初は、デプロイ時にECS Serviceのローリン

                    Amazon EKSでAWS App Meshを利用してgRPCサーバーを運用する | Recruit Tech Blog
                  • Introducing DRPC: Our Replacement for gRPC | Storj Engineering Blog

                    4/27/2021In 2016, Google launched gRPC, which has overall taken the systems programming community by storm. gRPC stands for something with a G, Remote Procedure Call; it's a mechanism for easily defining interfaces between two different remote services. It's tightly bundled with Protocol Buffers version 3 (another highly adopted data interchange specification from Google), and... it seems like eve

                    • protolintの自作pluginによるprotoファイルのレビュー負荷軽減のための取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ

                      こんにちは。cybozu.com Cloud Platformチームの pddg です。Cloud Platformチームでは現在、精力的に cybozu.com のインフラ基盤の移行に取り組んでいます*1。その取り組みの一環として、gRPCを用いたスキーマファーストな開発を推進しています。 今回はスキーマを記述したprotoファイルのレビューにおいて一部のレビュー項目をCIで自動的に確認されるようにし、レビュワーの負荷を軽減できたのでその方法についてご紹介します。 ※ これは Cybozu Advent Calendar 2022 15日目の記事です。 背景 cybozu.com のバックエンドでは、これまではサービスのAPIのスキーマをドキュメント等によりカバーしてきました。これはその実装チームが整備し、適宜更新していくものを指します。しかし、こういったドキュメントはしばしばメンテされ

                        protolintの自作pluginによるprotoファイルのレビュー負荷軽減のための取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
                      • Pola PCE で SR 網の TE を体験してみよう! - NTT docomo Business Engineers' Blog

                        はじめに こんにちは、イノベーションセンターの竹中です。 本記事では、SR-TE を一元的に管理するためのソフトウェア実装である Pola PCE の概要や利用方法について紹介します。 Pola PCE は私と三島で実装し、現在 NTT Com より OSS 公開中です。 [Multi-AS Segment Routing 検証連載 #11] PCE 実装の検証 記事でも一部機能を紹介しましたが、本記事では Example を用いた試用環境の準備、ベンダールーターを用いての環境準備、また各機能について紹介します。 また、Go で開発したツールを OSS として公開する中で得た知見を NTT Communications Advent Calendar 2022 8日目で紹介しているので、こちらも是非ご覧ください。 目次 Pola PCE 概要 Pola PCE とはどのような特徴を持つ P

                          Pola PCE で SR 網の TE を体験してみよう! - NTT docomo Business Engineers' Blog
                        • Cloud Run の WebSocket、HTTP/2、gRPC 双方向ストリームのご紹介 | Google Cloud 公式ブログ

                          ※この投稿は米国時間 2021 年 1 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。 このたび、Cloud Run に新しいトラフィック配信機能が追加され、エンドツーエンドの HTTP/2 接続、WebSocket のサポート、gRPC の双方向ストリーミングが可能になりました。これにより、gRPC で提供される全タイプのリモート プロシージャ コールを実行できるようになりました。これらの機能を使用することで、サーバーレス インフラストラクチャを利用しながら、これまでサポートされていなかった種類のアプリケーションを Cloud Run にデプロイできるようになりました。これらの新機能は現在、Cloud Run の全ロケーションの公開プレビューで利用可能になっています。 ストリーミングのサポートは、応答性の高い高性能アプリケーションを構築するうえで重要です

                            Cloud Run の WebSocket、HTTP/2、gRPC 双方向ストリームのご紹介 | Google Cloud 公式ブログ
                          • Practical API Design at Netflix, Part 1: Using Protobuf FieldMask

                            By Alex Borysov, Ricky Gardiner BackgroundAt Netflix, we heavily use gRPC for the purpose of backend to backend communication. When we process a request it is often beneficial to know which fields the caller is interested in and which ones they ignore. Some response fields can be expensive to compute, some fields can require remote calls to other services. Remote calls are never free; they impose

                              Practical API Design at Netflix, Part 1: Using Protobuf FieldMask
                            • grpc-kotlinの実装をinterfaceの定義によってテンプレート化する - ドワンゴ教育サービス開発者ブログ

                              はじめに grpc-kotlin の実装に必要な要素 リクエスト・レスポンスクラス サービスクラス サーバークラス 普通に実装したときの不満点 不満1: 異なる関心事の混在 不満2: 共通処理 不満3: エラーハンドリング インターフェースを定義する validateAndConvertRequest process convertResponse エラーハンドリング おわりに We are hiring! & Kotlin Fest出展のお知らせ はじめに 過去にも何度か紹介しておりますが、現在開発中の新しい教材システムでは新たにgRPC通信によるKotlinサーバーを採用して開発が進められています。 blog.nnn.dev そして、技術選定の方針としてWebアプリケーションフレームワークはなるべくシンプルで薄くすることを決めたので、Spring Boot のような別フレームワークを介

                                grpc-kotlinの実装をinterfaceの定義によってテンプレート化する - ドワンゴ教育サービス開発者ブログ
                              • つくって学ぶ Protocol Buffers エンコーディング | メルカリエンジニアリング

                                Wire type は実際の型を示しているわけではないことに注意してください。Wire type はあくまでも値を読み取るための手がかりにすぎないため、読み取った値をどの型にするべきか知るためには descriptor を参照しなければいけません。 タグは次のようなロジックでエンコードされます。 fieldNumber << 3 | wireType たとえばフィールド foo の場合、フィールド番号は 1、Wire type は 0 なので 08 となります。これはエンコードされたバイト列の先頭バイトと一致しています。 fieldNumber := 1 wireType := 0 tag := fieldNumber<<3 | wireType fmt.Printf("%x", tag) // 08 タグの直後にはそのフィールドに対応する実際の値が続きます。 Wire type に基づい

                                  つくって学ぶ Protocol Buffers エンコーディング | メルカリエンジニアリング
                                • GitHub - yoheimuta/protolint: A pluggable linter and fixer to enforce Protocol Buffer style and conventions.

                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                    GitHub - yoheimuta/protolint: A pluggable linter and fixer to enforce Protocol Buffer style and conventions.
                                  • Traffic Director でプロキシレス サービスメッシュを試してみる

                                    )に引き続きみんな大好きサービスメッシュネタです。 この記事では、Google Cloud が提供している Traffic Director というサービスを利用したプロキシレス サービスメッシュ(以降、プロキシレス gRPC と記載します) の概要について説明していきたいと思います。 サービスメッシュとは?という話についてはこちらの記事では触れないので、Kozzy さんの記事「Anthos Service Mesh を導入、移行、そして使いこなしてみよう」をご参照ください。 Traffic Director 概要まず、Traffic Director の概要について説明します。 Traffic Director はサービスメッシュのコントロールプレーン機能を提供してくれるサービスです。Traffic Director を利用することで仮想マシンやコンテナベースのアプリケーションで簡単にス

                                      Traffic Director でプロキシレス サービスメッシュを試してみる
                                    • LICENSE updated to template · microsoft/grpc_bench@04c7143

                                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                        LICENSE updated to template · microsoft/grpc_bench@04c7143
                                      • Go言語で簡単なgRPCサーバーを作成 | DevelopersIO

                                        この記事はGo言語でgRPCサーバーを作る上で学んだことをまとめています。サンプルプロジェクトとしてシンプルな単行RPC(Unary RPC)サーバーとそれを呼び出すコマンドラインのクライアントを作成していきます。 はじめに この記事はGo言語でgRPCサーバーを作る上で学んだことをまとめています。 サンプルプロジェクトとしてシンプルな単行RPC(Unary RPC)サーバーとそれを呼び出すコマンドラインのクライアントを作成していきます。 ※この記事は既にGo言語の開発環境をセットアップ済みで基本的な文法を学習済みの方を想定しています。 動作環境 今回使用した動作環境は以下のとおりです。 PC : Mac M1(Apple Silicon)チップ OS : macOS Big Sir 11.5.2 Go : 1.17.1 gRPCとは gRPCはGoogleの作ったRPCのフレームワークで

                                          Go言語で簡単なgRPCサーバーを作成 | DevelopersIO
                                        • 【gRPC】Connect が作られた背景概要/これまでの gRPC-Web/Connect でできること - SYM's Tech Knowledge Index & Creation Records

                                          【gRPC】Connect が作られた背景概要/これまでの gRPC-Web/Connect でできること はじめに 何故 Connect が作られたのか? gRPC-Web とは proxy 層が必要な理由 gRPC-Web のソースを追う Envoy Proxy & gRPC-gateway 補足 Connect とは Connect-Web Connect-Web のソースを追う fetch api についての補足 Connect チュートリアル + α connect-go (サーバサイド) 初期構築 コード生成 ルーティング ERROR Interceptors Streaming Client-Side Streaming RPC Server-Side Streaming RPC 補足 (HTTP Trailer について) connect-web (フロントエンド) 初期構

                                            【gRPC】Connect が作られた背景概要/これまでの gRPC-Web/Connect でできること - SYM's Tech Knowledge Index & Creation Records
                                          • 【REST API / gRPC / tRPC】徹底比較!どれを選ぶべきか?

                                            はじめに API設計のアーキテクチャスタイルには、REST API、GraphQL、gRPC、tRPCなど、複数の選択肢があります。 私はこれまでに、実務や個人開発でREST API、gRPC、tRPCを使用してきました。その上で今回は、それぞれの特徴と開発の流れについて紹介します。さらに、それぞれのメリット・デメリットを挙げ、特定のケースに適した選択について考察してみました。 API設計のアーキテクチャスタイルの選択に悩んでいる方に、少しでも参考になれば幸いです。 REST API RESTとは まずRESTとはシンプルなWEB全体のアーキテクチャスタイルのことです。RESTには4つの原則があり(6つとも言われている)それらを満たすもののことをRESTfulと言います。 ※それぞれの原則の詳細は省略します。 統一インターフェース アドレス可能性 接続性 ステートレス性 REST APIは

                                              【REST API / gRPC / tRPC】徹底比較!どれを選ぶべきか?
                                            • GitHub - zeromicro/go-zero: A cloud-native Go microservices framework with cli tool for productivity.

                                              You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                GitHub - zeromicro/go-zero: A cloud-native Go microservices framework with cli tool for productivity.
                                              • Connect

                                                Simple, reliable, interoperable.Protobuf RPC that works.Connect is a family of libraries for building browser and gRPC-compatible APIs. If you're tired of hand-written boilerplate and turned off by massive frameworks, Connect is for you.

                                                  Connect
                                                • Auth0で保護されたGo gRPCサーバーをAWS上に構築してみる | DevelopersIO

                                                  調査する機会があったので、ブログにまとめてみました。 gRPCでは、データ通信にProtocol Buffersとよばれるシリアライゼーション形式を利用します。 Protocl Buffersは、データのシリアライゼーション形式として知られる一方で、シリアライズするためのスキーマ定義用として.protoファイルというインタフェース定義言語(IDL)を持っています。 実際の開発においては、この.protoファイルを先に作成することでスキーマファーストな進め方ができるのが大きな特徴です。 今回は、.protoファイルの作成~認可処理の実装~AWS環境へのデプロイまで一気通貫で紹介したいと思います。 せっかちな人へ GitHubリポジトリにすべて上げています。 構成図 ディレクトリ構成 $ tree -L 2 . ├── Dockerfile ├── go.mod ├── go.sum ├──

                                                    Auth0で保護されたGo gRPCサーバーをAWS上に構築してみる | DevelopersIO
                                                  • gRPCのkeepaliveで気をつけること その2 - Carpe Diem

                                                    背景 以前gRPCのkeepaliveについて説明しました。 christina04.hatenablog.com keepaliveの目的は idleコネクションを維持するため 死んだコネクション(TCPハーフオープン)があったら切断し、再接続するため と書きましたが、どちらの検証もアクティブなRPCがなくなってからのkeepaliveの例であり、リクエストが続く中での挙動は検証できてなかったので今回はそれを行います。 環境 grpc-go v1.38.1 Ubuntu 18.04 (Linux Kernel 4.15.0-147-generic) PINGフレームはいつ送信される? Client-side keepaliveのパラメータであるTimeで送信間隔は設定できますが、いつ条件を満たして発火する(タイマーが開始する)かについては説明していませんでした。 Proposalでは i

                                                      gRPCのkeepaliveで気をつけること その2 - Carpe Diem
                                                    • とほほのgRPC入門 - とほほのWWW入門

                                                      gRPCとは インストール プロトファイルを作成する スタブを作成する サーバプログラムを作成する クライアントプログラムを作成する サーバとクライアントを実行する Go言語の場合 リンク Node gRPCとは Google が開発した RPC(Remote Procedure Call)システムです。 サーバとクライアント間で HTTP/2 を経由した関数呼び出しを実現します。 Go, JavaScript(Node.js), PHP, Python, Ruby, Java, C/C++, C#, Dart, Kotlin などで利用可能です。 Protocol Buffers と呼ばれるインタフェース記述言語(IDL)でインタフェースを定義します。 ストリーミング型のインタフェースを実装することもできます。 インストール CentOS 8 + Python の場合の例を示します。イン

                                                      • GRPCのリクエスト構造とエラーハンドリング - Qiita

                                                        この記事について GRPC は HTTP/2 の上に構築されているため、クライアントからサーバーのサービス呼び出しや、サーバーからクライアントへ戻り値やエラーの送信、といったやり取りは HTTP/2 のリクエストとレスポンスで実装されています(もうちょっと厳密に言うと HTTP/2 フレームを使って実装されている)。 この記事ではGo言語のGRPC実装(grpc-go)を用いて、以下についてまとめてみました。 GRPC が用いる HTTP/2 のリクエスト、レスポンスの流れと構造 その中でエラーがどう伝播されるか GRPC の Unary RPC のエラーハンドリング 扱いにちょっと悩む Streaming RPC のエラーハンドリング 環境等の情報 記事の作成に用いた環境: Go言語 : v1.15.6 grpc-go : v1.34.0 この記事で用いたソースコード grpc-erro

                                                          GRPCのリクエスト構造とエラーハンドリング - Qiita
                                                        • GitHub - unkn0wn-root/resterm: Terminal REST client for .http/.rest files with HTTP, GraphQL and gRPC support.

                                                          Workspace explorer. Filters .http/.rest files, respects workspace roots, and keeps the file pane navigable with incremental search. Editor with modal workflow. Starts in view mode, supports Vim-style motions, visual selections with inline highlighting, clipboard yank/cut, Shift+F search, and an i / Esc toggle for insert mode. Inline requests. Type https://api.example.com or GET https://api.example

                                                            GitHub - unkn0wn-root/resterm: Terminal REST client for .http/.rest files with HTTP, GraphQL and gRPC support.
                                                          • BacklogのGitホスティングにおける冗長化と負荷分散の仕組み | 株式会社ヌーラボ(Nulab inc.)

                                                            サービス開発部Backlog課の@vvatanabeです。今年の4月にSRE課からBacklog課へ異動しました。よりプロダクトにコミットしていく機運の高まりを感じています。 今回は、Backlogが提供するGitホスティングにおいて、可用性・信頼性を保つためにどのように冗長化と負荷分散を実現しているのか、その仕組みについて解説します。 ※ 本記事はNuCon mini 2022 Springで発表した内容をブログ化したものです。 取り扱うデータの特性 初めに、Gitホスティングで取り扱うデータの特性について解説します。 リポジトリという単位のオブジェクトデータベース Gitホスティングではベアリポジトリと呼ばれるリポジトリを取り扱います。ベアリポジトリとはワークツリーを持たないリポジトリです。具体的には、ローカルマシンに git clone して使っているリポジトリ内の、 .git ディ

                                                              BacklogのGitホスティングにおける冗長化と負荷分散の仕組み | 株式会社ヌーラボ(Nulab inc.)
                                                            • gRPC over HTTP/3のプロトコルと実装を眺める - ASnoKaze blog

                                                              gRPC over HTTP/3のプロポーザルと、実装が出てきています。 プロトコル仕様: https://github.com/grpc/proposal/blob/master/G2-http3-protocol.md 実装 (.NET6): https://devblogs.microsoft.com/dotnet/http-3-support-in-dotnet-6/ 今回は、仕様を眺めつつ、Ubuntuで実装を動かすところまで試してみようと思います プロトコル仕様 プロポーザルは、現在 "In review" の状態となっています。 github.com HTTP/3の基本 HTTP/3はHTTP/2と機能上は大きな違いはありません。HTTPリクエストで通信が始まり、各HTTPリクエスト・レスポンスはQUICのストリームによって多重化されます。そのため、gRPC over HTT

                                                                gRPC over HTTP/3のプロトコルと実装を眺める - ASnoKaze blog
                                                              • The ultimate gRPC, REST and WebSocket client | Kreya

                                                                Calling APIs made easy!Kreya is a privacy focused, git friendly API client. It supports gRPC, REST, WebSockets, and more, all in one intuitive interface. Powerful features, seamless experienceDiscover why developers love Kreya for its comprehensive toolset and ease of use.

                                                                  The ultimate gRPC, REST and WebSocket client | Kreya
                                                                • gRPC を使用したパフォーマンスのベスト プラクティス

                                                                  作成者: James Newton-King gRPC は、高パフォーマンス サービス向けに設計されています。 このドキュメントでは、gRPC から最大限のパフォーマンスを得る方法について説明します。 gRPC チャネルを再利用する gRPC の呼び出しを行う場合は、gRPC チャネルを再利用する必要があります。 チャネルを再利用すると、既存の HTTP/2 接続を介して、呼び出しを多重化できます。 gRPC 呼び出しごとに新しいチャネルが作成された場合、完了までにかかる時間が大幅に増加する可能性があります。 呼び出しのたびに新しい HTTP/2 接続が作成されるため、クライアントとサーバーの間に次のような複数のネットワーク ラウンドトリップが必要になります。 ソケットを開く TCP 接続を確立する TLS ネゴシエーションを行う HTTP/2 接続を開始する gRPC 呼び出しを行う チ

                                                                    gRPC を使用したパフォーマンスのベスト プラクティス
                                                                  • gRPC 完全に理解した

                                                                    この記事はtraP Advent Calendar 2021 42日目の記事です。 こんにちは、20Bのxxarupakaxxです。 今回はgRPCについて解説していきます。 ※本記事ではgRPCのサンプルコードはございません。ただただgRPCについて話していきます。 自分が所属しているプロジェクトのミーティングでgRPCについて話題が上がり実際にgRPCで開発を進める方針になったので自分が調べた限りの知見をまとめて共有しようかなと思います。 gRPCってなんぞや gRPCって聞かれてもなんも思いつかないですよね.. gがついているから、Googleがなんか作ったんじゃないのって思うそこのあなた!そうです、Googleが開発したものなんです!!ですが、g + RPC.. RPCってなんだろうと思う方が多いかと思います。なのでまずRPCについて軽く説明していきます。 RPCってなに RPCと

                                                                      gRPC 完全に理解した
                                                                    • GoogleがWebSocket、HTTP/2、gRPC双方向ストリーム向けのCloud Runサービスサポートをアップデート

                                                                      あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

                                                                        GoogleがWebSocket、HTTP/2、gRPC双方向ストリーム向けのCloud Runサービスサポートをアップデート
                                                                      • Cloud Spanner の SQL ログを gRPC レイヤーで取得する方法

                                                                        はじめに この記事は Google Cloud Japan Advent Calendar 2022 の「通常版」の 21 日目の記事です。 こんにちは、Google Cloud でデータベース系のプロダクトを担当している佐藤です。 TL;DR - 最初にまとめ 本記事では以下の内容が書かれています。今回は Cloud Spanner 用のアプリケーションの話で例示していますが、gRPC を使う他のアプリにも応用ができる内容になっています。 本記事の内容 アプリケーションが Cloud Spanner へ投げる SQL および mutation とパラメータは、gRPC レイヤーでまとめて取得することができる gRPC には Interceptor という、各 RPC のリクエストごとに任意の処理を割り込ませる仕組みがある Interceptor で Cloud Spanner 用のアプリ

                                                                          Cloud Spanner の SQL ログを gRPC レイヤーで取得する方法
                                                                        • GitHub - go-masonry/mortar: Mortar is a GO framework/library for building gRPC (and REST) web services.

                                                                          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                            GitHub - go-masonry/mortar: Mortar is a GO framework/library for building gRPC (and REST) web services.
                                                                          • protobuf スキーマと gRPC 通信 | Wantedly Engineering Handbook

                                                                            本稿では gRPC + protobuf の入門とWantedlyにおけるベストプラクティスを紹介します。 protobuf (Protocol Buffers) はデータフォーマットで、JSONの役割を置き換えるものです。一方 gRPC は通信プロトコルで、HTTPの役割を置き換えるものです。 gRPC + JSON や HTTP + protobuf のような組み合わせも可能ですが、Wantedlyでは使わないので以降では考えません。 JSONとprotobufの重要な違いとして、protobufはフォーマットがスキーマに依存するという点があります。JSONはスキーマがなくても完全なシリアライズ・デシリアライズが可能ですが、protobufのデータをシリアライズ・デシリアライズするにはスキーマ情報が必要です。gRPCは技術的には必ずしもスキーマ依存ではありませんが、実装上はスキーマなし

                                                                              protobuf スキーマと gRPC 通信 | Wantedly Engineering Handbook
                                                                            • 予約APIのマイクロサービス化とgRPCゲートウェイの置き方 - Retty Tech Blog

                                                                              本記事はRettyマイクロサービス強化月間の四つ目の記事です. engineer.retty.me RettyのtoB開発チームでエンジニアをしています鈴木です. 社会人エンジニアも早いことに1年が経ってしまい, “ピチピチエンジニア” の称号と権利を失ってしまいました. 今年は “深みと勢いのエンジニア” として活動しています. ピチピチエンジニアとして投稿した以前の記事では, その時おすすめの焼き芋を紹介したので今回も最近おすすめのお店としてMEARIを載せます. retty.me 今まで実家の焼き鳥が一番美味しいと思っていた自分に衝撃を与えたお店です. 早速本題に入りますが, RettyのtoB開発チームではtoC開発チームと同様にPHPで作られた大きいモノリスからGoで書かれたマイクロサービスへの移行が進んでいます. 現在, Rettyにおけるとても重要なシステムである予約APIの

                                                                                予約APIのマイクロサービス化とgRPCゲートウェイの置き方 - Retty Tech Blog
                                                                              • grpc-goのNewClient()を使うとbufconnを使ったテストがUnavailableでコケる件の対処法

                                                                                TL;DR grpc-go v1.64.0からDial()やDialContext()がDeprecatedとなった 代わりに推奨されたNewClient()を使うとbufconnを使っているテストがUnavailable(name resolver error: produced zero addresses)で落ちる 初期化として resolver.SetDefaultScheme("passthrough") を突っ込むと動くよ 原因 gRPCクライアントを作成する際、従来のDial(), DialContext()ではデフォルトのネームリゾルバーは passthrough として作成されます。 これがNewClient()からは dns になったためです。 bufconnは passthrough であることが前提で作られているためエラーになります。 rpc error: code

                                                                                  grpc-goのNewClient()を使うとbufconnを使ったテストがUnavailableでコケる件の対処法
                                                                                • NetflixによるgRPCを使った実用的なAPIデザイン

                                                                                  あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

                                                                                    NetflixによるgRPCを使った実用的なAPIデザイン

                                                                                  新着記事