ETCD 网关和gRPC-gateway

634 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情

ETCD 网关和gRPC-gateway

ETCD网关:构建etcd集群的门户

  • etcd网关是一个简单的TCP代理,可将网络数据转发到etcd集群中
  • 网关是无状态且透明的,它既不会检查客户端请求,也不会干扰集群响应,支持多个etcd服务实例,并采用简单的循环策略。

如果同一服务器上的多应用程序访问的etcd集群,每个应用程序仍然需要知道etcd集群的广播客户端断点地址。 发生etcd集群实例的变更时,只需要网关更新其端点。

总而言之:为了自动传播集群端点更改,etcd网关在每台机器上都运行,为多个应用提供访问相同的etcd集群服务。

gRPC-Gateway:为非gRPC的客户端提供HTTP接口

HTTP的方式访问etcd服务端,需要考虑安全的问题,gRPC-Gateway中提供的API接口支持开启安全认证。 有的语言客户端不支持gRPC通信协议,此时就可以使用gRPC-Gateway对外提供HTTP API接口 ,通过HTTP请求,实现与gRPC调用协议同样的功能。

gRPC-proxy

可伸缩的watch API

如果客户端监视同一键或某一范围内的键,gRPC代理可以将这些客户端程序(c-watcher)合并为链接到etcd服务器的单个监视程序(s-watcher)

当watch事件发生时,代理将所有事件(s-watcher)广播到其(c-watcher)

在这里插入图片描述

为了有效地将多个客户端监视程序合并为一个监视程序,gRPC代理在可能的情况下将新的c-watcher合并为现有地s-watcher。也有负载均衡的效果。

另外如果没有指定监视版本,gRPC代理将不能保证c-watcher从最近的存储修订版本开始监视。