HTTP动态负载均衡方式
如上的负载均衡实现中,每次upstream列表有变更,都需要到服务器进行修改,首先是管理容易出现问题,而且对于upstream服务上线无法自动注册到nginx upstream列表。因此,我们需要一种服务注册,可以将upstream动态注册到Nginx上,从而实现upstream服务的自动发现。
Consul是一款开源的分布式服务注册与发现系汽车房产抵押贷款 统,通过HTTP API可以使得服务注册、发现实现起来非常简单,它成都无抵押贷款支持如下特性。
· 服务注册: 服务实现者可以通过HTTP 个人小额信用贷API或DNS方式,将服务注册到Consul。
· 服务发现: 服务消费者可以通过HTTP API或DNS方式,从Consul获取服务的IP 和PORT。
· 故障检测: 支持如TCP、HTTP等方式的健康检查机制,从而当服务有故障时自动摘除。
· K/V存储: 使用K/V存储实现动态配置中心,其使用HTTP长轮询实现变更触发和配置更改。
· 多数据中心: 支持多数据中心,可以按照数据中心注册和发现服务,即支持只消费本地机房服务,使用多数据中心集群还可以避免单数据中心的单点故障。
· Raft算法: Consul使用Raft算法实现集群数据一致性。
通过Consul可以管理服务注册与发现,接下来需要有一个与Nginx部署在同一台机器的Agent来实现Nginx配置更改和Nginx重启功能。我们有Confd或者Consul-template两个选择,而Consul-template是Consul官方提供的,我们就选择它了。其使用HTTP长轮询实现变更触发和配置更改(使用Consul的watch命令实现)。也就是说,我们使用Consul-template实现配置模板,然后拉取Consul配置渲染模板来生成Nginx实际配置。
除Consul外,还有一个选择是etcd3,其使用了gRPC和protobuf可以说是一个亮点。不过,etcd3目前没有提供多数据中心、故障检测、Web管理界面。
本文地址:HTTP动态负载均衡方式 _http://longshunzhuangshi.com/jianzhanzixun/225.html 本文tag标签:HTTP动态负载均衡方式
上一篇:链接查询指令
下一篇:搜索引擎在乎垃圾