动态负载均衡(Nginx+Consul+UpSync)

Http动态负载均衡

什么是动态负载均衡

传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,

因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf。

这类似分布式的配置中心

 

动态负载均衡实现方案

 

  1. Consul+Consul-template  每次发现配置更改需要raload nginx,重启Nginx。
  1. Consul+OpenResty 实现无需raload动态负载均衡 (lua语言,配置文件放字典里面,每隔时间读取)
  2. Consul+upsync+Nginx  实现无需raload动态负载均衡 (原理同上)

 

 

常用服务器注册与发现框架

 常见服务发现框架 Consul、Eureka、 ZooKeeper以及Etcd  ZooKeeper是这种类型的项目中历史最悠久的之一,它起源于Hadoop。它非常成熟、可靠,被许多大公司(YouTube、eBay、雅虎等)使用。

     etcd是一个采用HTTP协议的健/值对存储系统,它是一个分布式和功能层次配置系统,可用于构建服务发现系统。其很容易部署、安装和使用,提供了可靠的数据持久化特性。它是安全的并且文档也十分齐全。

 

 

修改Nginx配置文件,需要重启。(静态的) 

 

 

IP区分主机  port区别进程  服务

注册中心 存放IP地址和端口号 

 

 

服务注册于发现应用场景:  服务RPC远程调用

注册中心 存放IP地址和端口

RPC http协议如何调用: HttpClient

 

动态负载均衡(Nginx+Consul+UpSync)原理

 

 1、搭建ConsulServer专门存放负载均衡注册配置信息

 2、nginx间隔时间动态获取最新的ConsulServer配置信息

 

posted @ 2018-11-06 00:11  toov5  阅读(2007)  评论(0编辑  收藏  举报