Where should you use gRPC? And where NOT!
I’ve recently read a few blogs and watched videos that compare gRPC with REST and GraphQL. It seemed like the majority claimed that gRPC is the standard for communication between services without giving any real reason. I think it would be better served to explain where and the situations where gRPC could be useful and where I’d avoid using it.
Calling Dapr service with gRPC
In previous posts, we focused on Dapr service invocation using the HTTP protocol. Dapr, through its service invocation, can also reliably and securely communicate with other applications using gRPC. We will have a look at this other capability in this post.
gRPC performance improvements in .NET 5
gRPC is a modern open source remote procedure call framework. There are many exciting features in gRPC: real-time streaming, client-to-server code generation, and great cross-platform support to name a few. The most exciting to me, and consistently mentioned by developers who are interested in gRPC, is performance. Last year Microsoft contributed a new implementation of gRPC for .NET to the CNCF. Built on top of Kestrel and HttpClient, gRPC for .NET makes gRPC a first-class member of the .NET ecosystem. In our first gRPC for .NET release, we focused on gRPC’s core features, compatibility, and stability. In .NET 5, we made gRPC really fast.
xposing proto files in a gRPC service over a frameworkless and lightweight API
A few days ago I introduced the notion of nano service in ASP.NET Core or rather how to implement a REST API without any particular framework (https://anthonygiretti.com/2020/06/29/nano-services-with-asp-net-core-or-how-to-build-a-light-api/). Since then, I have challenged myself regularly on the possibilities of relevant applications of this idea. Well, I found a very interesting use case: exposing the protobuffs of a gRPC service without using a framework and having to manage collisions with the gRPC framework of ASP.NET Core. This article will show you how to do it in the simplest way possible.
gRPC 1.30.0 发布,谷歌开源的高性能 RPC 框架
gRPC 1.30.0 发布了。gRPC 是 Google 开源的高性能、通用 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。新版本包含改进和错误修复,主要更新内容如下:Core此版本添加了一个称为 xds 的 xDS URI 方案,这是 v1.28.0 中引入的 xds-experimental 方案的稳定版...
gRPC 1.28.0 发布,谷歌开源的高性能 RPC 框架
gRPC 1.28.0 发布了。gRPC 是 Google 开源的高性能、通用 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。gRPC 基于 HTTP/2 标准设计,带来诸如双...
gRPC & ASP.NET Core 3.1: Resiliency with Polly
Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner. From version 6.0.1, Polly targets .NET Standard 1.1 and 2+.
gRPC & ASP.NET Core 3.1: Global error Handling in gRPC & gRPC status codes
Microsoft has implemented Interceptors, they are similar to Filters or Middlewares in ASP.NET Core MVC or WebAPI, they can be used for global exception handling, logging, validation etc.
gRPC & ASP.NET Core 3.1: What’s gRPC-web & how to create a gRPC-web service ?
In the summer of 2016, both a team at Google and Improbable independently started working on implementing something that could be called “gRPC for the browser”. They soon discovered each other’s existence and got together to define a spec for the new protocol.
gRPC & ASP.NET Core 3.1: How to create a gRPC client ?
In this example we will create a .NET Core 3.1 console application. Remember gRPC is designed for backend to backend communication with RPC commands.
gRPC & ASP.NET Core 3.1: What’s gRPC ? (introduction)
gRPC is an RPC (Remote procedure call) framework and not a Microsoft framework. It runs on HTTP/2 and it uses Protocol Buffers serialization format. gRPC provides bi-directional data transport and allows flow control (cancellation and waiting times). gRPC has been created by Google around 2003/2004 and they open sourced it in 2015. Many languages had implemented it except .NET, Finally Microsoft released a .NET version with ASP.NET Core 3.0 in September 2019.
Sharing gRPC ProtoBuf contracts using a REST endpoint
In this post, Premier Consultant Randy Patterson explores ASP.NET Static File middleware as an option to distribute gRPC proto files.
gRPC in ASP.NET Core 3.x - gRPC 简介
首先,需要一个server(服务器),它用来接收和处理请求,然后返回响应。 既然有server,那么肯定有client(客户端),client的作用就是向server发送请求,具体就是生成一个请求,然后把它发送到server,然后等待server的响应。 但是它们不必是一对一的关系,在整个系统里,可以有多个server,也可以有多个client。根据实际情况,一个应用程序可能是gRPC的server,也可能是gRPC的client,也可能两者都是。 gRPC里面server和client并不是直接通信的,gRPC可以使用protocol buffer定义的消息来生成代码。 当client发送...
gRPC 1.27.0 发布,谷歌开源的高性能 RPC 框架
gRPC 1.27.0 发布了。gRPC 是 Google 开源的高性能、通用 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。主要更新内容如下:Core在 Windows 上使用 OpenSSL1.1.1+ 修复构建 (#21611)添加一个新的子模块 libuv v1.34.0 (#21583)grpclb :添加了对平衡器的支持,告诉客户端进入后备模...
A new experiment: Call .NET gRPC services from the browser with gRPC-Web
I’m excited to announce experimental support for gRPC-Web with .NET. gRPC-Web allows gRPC to be called from browser-based apps like JavaScript SPAs or Blazor WebAssembly apps. gRPC-Web for .NET promises to bring many of gRPC’s great features to browser apps...