Nginx/ZooKeeper 负载均衡的差异

  • Nginx 是我们常见的反向代理服务器,也被广泛的用作负载均衡服务器
  • ZooKeeper是分布式协调服务框架,有时也被用来做负载均衡
Nginx
  • Nginx负载均衡配置非常简单,吧多个Web Server配置到nginx中,用户访问Nginx时候,会自动被分配到某个webServer,如下Nginx配置:
upstream backend{server1 192.168.1.10;
server2 129.168.1.11;
}

  • 当网证规模变大,通常进行服务拆分,各个服务独立部署,通过远程调用方式协同工作,如下示意图:
  • 为保证稳定性,每个服务不会用一台服务器,也会做集群,你们这子集群同样需要一个负载均衡,可以使用Nginx
  • 到这一步我们用Nginx完全可以解决问题,但是随着系统再次增大,服务数量也会增加,每个服务集群服务器数据增加,这个时候会有如下问题:
    • 维护Nginx配置的成本变大,节点变多
    • 单点故障风险增加,因为热点服务,比如用户信息,访问量高,如果这个服务器集群的Nginx出现问题,服务将失效
  • 第一个问题,可以自己开发插件解决,只是降低复杂度,没有根本解决。
  • 第二个问题,可以通过多Nginx部署方案,另一台Nginx可以待命状态,提高容错,只是增加成本
Zookeeper负载均衡实现思路
  • 将Zookeeper作为服务注册中心,在其中登记每个服务,每台服务器指定自己是属于那个服务,在服务启动时候,想所属服务进行注册,这样一个树形服务结构就呈现出来:
  • 服务调用者到注册中心查找:能提供所需服务的服务列表,然后自己根据负载均衡算法,从中选取一台服务器进行连接,并且在此节点注册watcher,修改通知
  • 调用者渠道服务列表,可以缓存在自己内部,省的下次在获取,当服务器列表发送变化,例如宕机,或添加新的服务器,Zookeeper的watcher机制会通知添加修改关注的调用者重新获取服务器列表
  • 此处只是利用了Zookeeper树形数据结构,watcher机制等性能,吧Zookeeper作为服务注册和变更通知,解决了Nginx负载均衡方案带来的问题
总结
zookeeper nginx
不存在单点问题,zab机制保证单点故障可重新选举一个leader 存在单点问题,单点负载高数据量大
只负责服务的注册与发现,不负责转发,减少一次数据交换(消费方与服务方直接通信) 每次负载,都充当一次中间人转发角色,增加网络负载量(消费方与服务方间接通信)
需要自己实现相应的负载均衡算法 自带负载均衡算法

上一篇Zookeeper实践与应用- Canal
下一篇Zookeeper–分布式锁

Zookeeper实践与应用-- Nginx负载均衡差异相关推荐

  1. Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建十一(Nginx负载均衡篇)

    Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建十一(Nginx负载均衡篇) 十三.Nginx负载均衡 1.Nginx安装环境 2.编译 3.启动测试 4.ngi ...

  2. 基于nginx负载均衡的慢性病专家系统

    摘要 随着互联网技术和国内医疗行业持续高速地发展,管理员为了能够更加方便地管理用户预约挂号和医生诊疗,慢性病专家系统被开发出来的目的是为了能够更加方便管理用户预约挂号和医生诊疗,一个良好的慢性病专家系 ...

  3. Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点

    Nginx负载均衡的配置,常用策略,场景,以及特点,放到这里是需要更细化的讲解,毕竟一期还没有做集群,而我们这一期做集群的时候,很多点要单独拿出来深入讲解,第一个轮询,默认的一个配置,简单也好理解,第 ...

  4. Nginx负载均衡配置和健康检查

    Nginx负载均衡配置和健康检查 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. nginx的强大之处不必要我细说,当初第一次接触ngin ...

  5. nginx负载均衡集群(二)

    nginx负载均衡配置实战 一.配置基于域名虚拟主机的web节点 web02和web01做同样的操作,nginx配置文件如下: [root@web01 conf]# cat nginx.conf wo ...

  6. Nginx——Nginx负载均衡

    目录 1.负载均衡概述 2.负载均衡的原理及处理流程 3.负载均衡的作用 4.负载均衡常用的处理方式 4.1.方式1:用户手动选择 4.2.方式2:DNS轮询方式 4.3.四/七层负载均衡 5.Ngi ...

  7. nginx负载均衡session共享

    文章目录 一.可道云项目结合redis缓存部署 redis缓存可道云项目数据及会话,加快网站访问速度 二.Nginx负载均衡会话共享 1.1 什么是会话保持 1.2 为什么需要会话保持 1.3 Coo ...

  8. Nginx负载均衡原理与实战

    Nginx 负载均衡原理与实践 本篇摘自<亿级流量网站架构核心技术>第二章 Nginx 负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩 ...

  9. 企业级Nginx负载均衡与keepalived高可用实战课-老男孩-专题视频课程

    企业级Nginx负载均衡与keepalived高可用实战课-2678人已学习 课程介绍         企业级Nginx负载均衡与keepalived高可用实战分享 课程收益     互联网环境最常用 ...

最新文章

  1. Elasticsearch 在各大互联网公司大量真实的应用案例!
  2. 直播回顾|结构光编码与三维重建技术
  3. 20个必不可少的Python库
  4. wingIDE设置python虚拟环境并运行
  5. 面对 this 指向丢失,尤雨溪在 Vuex 源码中是怎么处理的
  6. java nosql_Java EE的NoSQL的未来
  7. 唏嘘!2019榜单出炉:铁打的Python连续3年第一,它居然跌出前十?
  8. K8S架构设计及工作流程分析
  9. [转载] Java构造方法、重载和重写
  10. C语言课程设计学生考勤管理系统
  11. Unity移动平台相关(一)
  12. 联邦学习 OR 迁移学习?联邦迁移学习不香吗
  13. 图灵工业机器人说明书_图说人工智能:机器人极简史
  14. sis新地址_“这是什么梗?”,互联网上的新梗老梗如何影响你?
  15. matlab对三维矩阵求和,【求助】多维矩阵求和运算!!
  16. 一元二次方程求根计算机的代码,[C算法]一元二次方程求根
  17. day13课后总结App
  18. Windows核心编程笔记(8)
  19. arcgis 空间交集 计算_ArcGIS叠置分析之相交分析
  20. 1024 和音视频大佬线下面基,Get 新技能

热门文章

  1. C和指针之动态内存分配之编程练习4
  2. 《iVX 高仿美团APP制作移动端完整项目》03 推介信息及推荐商家分析及制作
  3. flex java框架_fleXive——JavaEE框架
  4. omnicppcomplete php,VIM 常用法 (三)
  5. 那些上海滩的金融传奇,或许都开始于一份PPT
  6. 30张不明觉厉的照片,看几遍终于看懂了
  7. 英国出土1600年前的文物,上面居然刻着简体中文?!
  8. 【物理动图】物理老师一针见血:50张动图看懂高中物理
  9. 现在的便签本都这么社会了!?重复写万次还能云端保存
  10. 【直观详解】支持向量机SVM