`

[转]Nginx/ZooKeeper 负载均衡的差异

阅读更多

转自http://mp.weixin.qq.com/s?__biz=MzA4Nzc4MjI4MQ==&mid=402866606&idx=1&sn=01d4ea23fb79f02398cfee004496d1a5#rd&utm_source=tuicool&utm_medium=referral

Nginx是著名的反向代理服务器,也被广泛的作为负载均衡服务器

ZooKeeper是分布式协调服务框架,有时也被用来做负载均衡

那么他们的区别是什么?如何选择呢?

下面从实际场景看下他们的关系

Nginx的负载均衡配置非常简单,把多个web server配置到nginx中,用户访问Nginx时,就会自动被分配到某个web server

upstream backend {

server 192.168.1.10;

server 192.168.1.11;

当网站规模变大,通常会进行服务拆分,各个服务独立部署,通过远程调用方式协同工作

为了保证稳定性,每个服务不会只使用一台服务器,也会作为一个集群存在,那么这个子集群同样需要一个负载均衡器,可以使用Nginx

到这里还是没有感觉有使用ZooKeeper的必要,因为使用Nginx完全没问题

但随着整个系统的演进, 服务 的数量会 增加 、每个服务集群中的 服务器 数量会增加

这时就会有一些小麻烦,例如

(1)配置维护的成本变高,因为节点太多

(2)单点故障的风险增加了,因为热点服务的访问量很高,如果这个服务集群内的负载均衡服务出现问题,这个服务将失效

第一个问题,可以通过自己开发程序解决,但只是降低复杂度,并没有实际解决

第二个问题,可以通过双机高可用部署方案,使用另一台nginx负载均衡服务器随时待命,只是成本较高

为了解决这些问题,就有人提出了使用ZooKeeper负载均衡的方案,之前就看到淘宝介绍过此类方案

ZooKeeper负载均衡的实现思路

把ZooKeeper作为一个服务的注册中心,在其中登记每个服务,每台服务器知道自己是属于哪个服务,在服务器启动时,自己向所属服务进行登记,这样,一个树形的服务结构就呈现出来了

服务的调用者到注册中心里面查找:能提供所需服务的服务器列表,然后自己根据负载均衡算法,从中选取一台服务器进行连接

调用者取到服务器列表后,就可以缓存到自己内部,省得下次再取,当服务器列表发生变化,例如某台服务器宕机下线,或者新加了服务器,ZooKeeper会自动通知调用者重新获取服务器列表

由于ZooKeeper并没有内置负载均衡策略,需要调用者自己实现,这个方案只是利用了ZooKeeper的树形数据结构、watcher机制等特性,把ZooKeeper作为服务的注册和变更通知中心,解决了Nginx负载均衡方案带来的问题

点击 阅读原文 查看 文章列表

分享到:
评论

相关推荐

    nginx配置 +负载均衡+https协议

    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak ``` 5. **替换原有Nginx** - 将新编译的Nginx程序复制到原位置。 ```bash cp objs/nginx /usr/local/nginx/sbin/nginx ``` 6. **测试新...

    Nginx实现负载均衡 web均衡负载 webservice负载均衡 Nginx实现负载均衡配制全说明

    Nginx实现负载均衡 web均衡负载 webservice负载均衡 Nginx实现负载均衡配制全说明 为了多台后台的web、webservice服务能均衡负载,可以使用nginx进行处理 1)配置文件全配制ok 2)有两个完整的web服务做例子,可以...

    nginx+redis负载均衡、session共享

    在构建高性能、高可用的Web服务时,"nginx+redis负载均衡、session共享"是一个常见的解决方案。这个方案结合了Nginx的反向代理和负载均衡能力,以及Redis的内存数据存储和分布式特性,用于处理高并发场景下的HTTP...

    基于lua的nginx自定义负载均衡

    基于lua的nginx自定义负载均衡基于lua的nginx自定义负载均衡

    Nginx的负载均衡入门

    4. 备份默认 nginx.conf 配置文件:mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.old 5. 创建 nginx.conf 配置文件:vi /usr/local/nginx/conf/nginx.conf 在 Nginx 负载均衡中,需要创建 ...

    Nginx+Tomcat 负载均衡 3分钟搞定

    "Nginx+Tomcat 负载均衡 3分钟搞定" 本文将从以下几个方面详细介绍 Nginx+Tomcat 实现负载均衡的知识点: 一、负载均衡的概念和优势 负载均衡(Load Balancing)是指在多台服务器之间分配工作负载,以提高响应...

    Nginx + Tomcat 负载均衡配置详解

    Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,在此文件中我们可以定义负载均衡策略。 负载均衡的常见策略有轮询、权重轮询、最少连接数和IP哈希。以轮询为例,Nginx配置中可以这样设置: ```nginx http { ...

    利用Nginx实现网站负载均衡_刘振宇

    它的一个非常重要的用途是实现网站的负载均衡,而本文主要介绍的就是如何利用Nginx来实现网站的负载均衡,作者是刘振宇。 负载均衡是一种计算机技术,用于在多个计算资源(例如计算机、CPU、磁盘驱动器、通信连接、...

    负载均衡器技术Nginx和F5的优缺点对比

     在一台服务器的操作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们管理系统平台使用的也是这款均衡器)。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分

    Nginx与tomcat 负载均衡

    Nginx与Tomcat的负载均衡 Nginx与Tomcat的负载均衡是指通过Nginx服务器来实现Tomcat集群的负载均衡,以提高系统的高性能和可扩展性。下面是实现负载均衡的详细步骤和知识点: 一、环境准备 * Nginx 1.8.0 * ...

    nginx与zookeeper交互,同步数据,发送系统负载信息。

    1.自动向zookeeper注册本机信息,同步负载状态 2.自动从zookeeper同步上游服务器信息 3.获取本机系统信息,cpu使用率,内存使用率,nginx连接数同步到zookeeper csdn:http://blog.csdn.net/rushroom

    Nginx+Tomcat负载均衡

    最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把...

    Nginx+Tomcat负载均衡企业实战.docx

    Nginx+Tomcat负载均衡企业实战.docx 本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等...

    基于muduo库实现的集群聊天服务器,通过mysql存储数据,通过nginx实现tcp负载均衡.zip

    基于muduo库实现的集群聊天服务器,通过mysql存储数据,通过nginx实现tcp负载均衡,通过redis实现集群内服务器间的消息订阅发布。 基于muduo库实现的集群聊天服务器,通过mysql存储数据,通过nginx实现tcp负载均衡,...

    实现基于nginx的tomcat负载均衡和集群配置

    首先,需要在Nginx配置文件(通常为`/etc/nginx/nginx.conf`或`/usr/local/nginx/conf/nginx.conf`)的http或server块中添加upstream模块,定义一组后端服务器: ```nginx upstream tomcat_cluster { server ...

    本项目应用了muduo网络库、nginx的TCP负载均衡、中间件reids的发布订阅功能,实现了集群部署聊天服务器.zip

    本项目应用了muduo网络库、nginx的TCP负载均衡、中间件reids的发布订阅功能、数据库连接池(自制),实现了集群部署聊天服务器 本项目应用了muduo网络库、nginx的TCP负载均衡、中间件reids的发布订阅功能、数据库连接...

    nginx-zookeeper:为 Nginx 服务器添加 Zookeeper 支持

    Nginx Zookeeper 模块 为 Nginx 服务器添加 zookeeper 支持。要求Zookeeper C 客户端安装 export LIBZOOKEEPER_PREFIX=/path/...例子 zookeeper_host "192.168.0.2:2181,192.168.0.3:2181"zookeeper_path "/nginx/foo

    Nginx+Squid负载均衡相关的PPT

    **Nginx与Squid负载均衡详解** 在现代互联网架构中,负载均衡扮演着至关重要的角色,它能够有效地分发网络流量,提高系统的可用性和响应速度,同时增强容错能力。Nginx和Squid是两种常用的开源工具,分别以反向代理...

    windows配置nginx实现负载均衡集群

    【Windows环境下配置Nginx实现负载均衡集群】 在IT领域,负载均衡是一种常见的技术,用于在多台服务器间分配网络流量,以提高系统的可用性和响应速度。通常,Linux是实现负载均衡的主流平台,但Windows环境下的配置...

Global site tag (gtag.js) - Google Analytics