gRPC-Web

采用Kubernetes时API网关面临的两个很重要的挑战

*爱你&永不变心* 提交于 2020-08-04 17:06:18
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! KUBERNETES和边缘计算,扩展边缘管理并支持多种需求 使用微服务模式构建应用程序并将这些服务部署到Kubernetes上已成为当今运行云原生应用程序的实际方法。 在微服务架构中,单个应用程序被分解为多个微服务。 每个微服务均由一个小团队拥有,该团队有权并负责为特定的微服务做出正确的决策。 这种职责通常从用户请求到达的系统边缘开始,一直到服务的业务逻辑,再到相关的消息传递和数据存储架构。 Edge和Kubernetes入口 最终用户需要访问微服务。 内部微服务和最终用户之间的边界称为边缘。 为了使最终用户访问内部应用程序,流量需要越过边缘。 在Kubernetes中,流量使用一种称为入口的软件穿越边缘。 将API网关与在Kubernetes上运行的基于微服务的应用程序集成时,您必须考虑两个主要挑战: 如何扩展对100多种服务和相关API的管理; 和 网关如何支持通常跨整个边缘堆栈的广泛的微服务体系结构,协议和配置。 API网关:微服务的联络点 API网关是如何管理,保护和呈现API的核心。 它作为软件组件(或一系列组件)部署在虚拟机上或Kubernetes中,并充当系统的单个入口点。 API网关的主要职责是使用户能够可靠,安全地访问多个API,微服务和后端系统。

一个新实验:使用gRPC-Web从浏览器调用.NET gRPC服务

陌路散爱 提交于 2020-04-20 04:58:53
今天给大家翻译一篇由ASP.NET首席开发工程师 James Newton-King 前几天发表的一篇博客,文中带来了一个实验性的产品gRPC-Web。大家可以点击文末的讨论帖进行相关反馈。我会在文章末尾给出原文链接。全部译文如下: 我很高兴宣布通过.NET对gRPC-Web进行实验性支持。gRPC-Web允许从基于浏览器的应用程序(例如JavaScript SPA或Blazor WebAssembly应用程序)调用gRPC。 .NET的gRPC-Web承诺将gRPC的许多出色功能引入浏览器应用程序: 强类型代码生成的客户端 紧凑的Protobuf消息 服务流 什么是gRPC-Web 无法在浏览器中实现gRPC HTTP / 2规范,因为没有浏览器API能够对HTTP请求进行足够的细粒度控制。 gRPC-Web 通过与HTTP / 1.1和HTTP / 2进行兼容来解决此问题。 gRPC-Web不是一项新技术。已经有一个稳定的 gRPC-Web JavaScript客户端 ,以及一个 用于在gRPC和gRPC-Web之间进行转换的代理 。新的实验性程序包允许ASP.NET Core gRPC应用程序支持 不 带代理的gRPC-Web ,并允许.NET Core gRPC客户端调用gRPC-Web服务。(非常适合Blazor WebAssembly应用!) 使用gRPC

一个新实验:使用gRPC-Web从浏览器调用.NET gRPC服务

泄露秘密 提交于 2020-04-19 17:17:22
今天给大家翻译一篇由ASP.NET首席开发工程师 James Newton-King 前几天发表的一篇博客,文中带来了一个实验性的产品gRPC-Web。大家可以点击文末的讨论帖进行相关反馈。我会在文章末尾给出原文链接。全部译文如下: 我很高兴宣布通过.NET对gRPC-Web进行实验性支持。gRPC-Web允许从基于浏览器的应用程序(例如JavaScript SPA或Blazor WebAssembly应用程序)调用gRPC。 .NET的gRPC-Web承诺将gRPC的许多出色功能引入浏览器应用程序: 强类型代码生成的客户端 紧凑的Protobuf消息 服务流 什么是gRPC-Web 无法在浏览器中实现gRPC HTTP / 2规范,因为没有浏览器API能够对HTTP请求进行足够的细粒度控制。 gRPC-Web 通过与HTTP / 1.1和HTTP / 2进行兼容来解决此问题。 gRPC-Web不是一项新技术。已经有一个稳定的 gRPC-Web JavaScript客户端 ,以及一个 用于在gRPC和gRPC-Web之间进行转换的代理 。新的实验性程序包允许ASP.NET Core gRPC应用程序支持 不 带代理的gRPC-Web ,并允许.NET Core gRPC客户端调用gRPC-Web服务。(非常适合Blazor WebAssembly应用!) 使用gRPC

Why do browsers not support gRPC?

荒凉一梦 提交于 2019-12-21 02:53:48
问题 gRPC is based on HTTP/2, which (assumption) is widely supported by browsers. Therefore, I feel there should be no problem with gRPC from a browser. However, it is clear that there is a problem. The protocol, grpc web, is different, as exists "due to browser limitation". There are also numerous blog post describing complicated tech stacks deployed to get gRPC to work from a browser. I'm missing the actual problem - why does gRPC not simply work from browsers? 回答1: Most browsers use HTTP1.1

How to parse HTTP message from another node to a gRPC server

不羁的心 提交于 2019-12-08 14:48:47
问题 I could successfully run a gRPC client and gRPC server in c++ now I wish to establish a communication between node A and gRPC server i.e. node B as in the attached image. Are there any examples which I can refer to below is what I am looking for. I have this node A with http message (GET method) which I need to parse i.e extract the message and run the request on node C. What is that I should look for in between Node A and gRPC server. Thanks in Advance 回答1: Most of the times, if you have to

caddy & grpc(3) 为 caddy 添加一个 反向代理插件

时光怂恿深爱的人放手 提交于 2019-11-26 20:10:59
caddy-grpc 为 caddy 添加一个 反向代理插件 项目地址: https://github.com/yhyddr/caddy-grpc <a name="A17eq"></a> 前言 上一次我们学习了如何在 Caddy 中扩展自己想要的插件。博客中只提供了大致框架。这一次,我们来根据具体插件 caddy-grpc 学习。 选取它的原因是,它本身是一个独立的应用,这里把它做成了一个 Caddy 的插件。或许你有进一步理解到 Caddy 的良好设计。 <a name="dKJp3"></a> 插件作用 该插件的目的与 Improbable-eng/grpc-web/go/grpcwebproxy 目的相同,但作为 Caddy 中间件插件而不是独立的Go应用程序。 而这个项目的作用又是什么呢? 这是一个小型反向代理,可以使用gRPC-Web协议支持现有的gRPC服务器并公开其功能,允许从浏览器中使用gRPC服务。 特征: 结构化记录(就是 log 啦)代理请求到stdout(标准输出) 可调试的 HTTP 端口(默认端口 8080 ) Prometheus监视代理请求( /metrics 在调试端点上) Request( /debug/requests )和连接跟踪端点( /debug/events ) TLS 1.2服务(默认端口 8443 ):