动态负载均衡(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地址和端口号 

 

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

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

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

Key是单个 value是多个    Nginx每隔一段时间,(nginx通过upsync去读取),通过key 读取value  然后持久化到本地   加载到内存使用

大家在玩的时候 一定要使用ningx 1.9以上版本啊!!!!!!!!!!!!!!!!!

猜你喜欢

转载自www.cnblogs.com/toov5/p/9912454.html