一起养成写作习惯!这是我参与「掘金日新计划 · 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从最近的存储修订版本开始监视。