Etcd集群与gRPC

一. etcd

1.下载安装docker(略)docker

2.启动etcd:缓存

      docker run -p 2379:2379 -p 2380 2380 -v /Users/xuanpro/Desktop/certs:/etc/ssl/certs quay.io/coreos/etcd:v3.0.4服务器

docker挂载本地端口2379和2380.负载均衡

docker挂载/etc/ssl/certs到本地/Users/xuanpro/Desktop/certs运维

elcolio/etcd  是docker的镜像, 也能够经过docker search etcd 查找镜像,再去docker pull xxxx  拉镜像下来
进程


二.负载均衡方式

(1)集中式LB(Proxy Model)
LB上有全部服务的地址映射表,一般由运维配置注册,当服务消费方调用某个目标服务时,它向LB发起请求,由LB以某种策略作负载均衡后将请求转发到目标服务.例如Nginx
(2)进程内LB(Balancing-aware Client)
首先将服务地址注册到服务注册表,同时按期报心跳到服务注册表以代表服务的存活状态,至关于健康检查. 服务消费方要访问某个服务时,它经过内置的LB组件向服务注册表查询,同时缓存并按期刷新目标服务地址列表,而后以某种负载均衡策略选择一个目标服务地址,最后向目标服务发起请求.例如ETCD.
(3)独立 LB 进程(External Load Balancing Service)
主机上的一个或者多个服务要访问目标服务时,他们都经过同一主机上的独立LB进程作服务发现和负载均衡。

三.gRPC服务发现

GRPC实现原理基于进程内LB方案:
(1)gRPC服务端启动后,向etcd注册一个服务,且有租约,若没续租将自动被删除.
(2)gRPC客户端服务启动后,向etcd发出名称解析请求,名称将解析为一个或多个IP地址,每一个IP地址标示它是服务器地址仍是负载均衡器地址,以及标示要使用那个客户端负载均衡策略或服务配置。
(3)客户端实例化负载均衡策略,若是解析返回的地址是负载均衡器地址,则客户端将使用grpclb策略,不然客户端使用服务配置请求的负载均衡策略。
(4)负载均衡策略为每一个服务器地址建立一个子通道(channel)。
(5)当有rpc请求时,负载均衡策略决定那个子通道即grpc服务器将接收请求,当可用服务器为空时客户端的请求将被阻塞。
相关文章
相关标签/搜索