上图是单版的架构,理论一个tomcat并发就200到300,经过优化后的最多500,这很明显容量低,而且出现单点故障后应用服务就不可以访问了,比如tomcat,这样明显对于多并发是不行的。

那么如果我们从域名提供商哪里一个域名映射多个IP呢?下图,每一个IP对应一个tomcat,通过IP轮询来到底要访问哪个Tomcat,这样行不行呢?我们先看下面的图:

上图所示,这样虽然解决了单点故障,容量也提升了,但是又出现问题了,1.DNS服务器完全暴露在外网,造成不安全。2入口不集中。3.如果其中一个Tomcat挂了,那么用户通过对应的IP进入了那个坏的tomcat,还是不可以访问,这样很明显不行。

那么如果我们把用户的请求入口,集中管理起来,那么我们把所有用户的请求入口集中在nignx下,用nignx的反向代理/负载均衡的典型算法,如轮询或随机将请求分发到不同的Tomcat下,这样不就解决上面的问题了吗?如下图:

那么上图这个架构就没事了吗?明显出现了第一个架构出现的问题,还是出现单点故障了,因为如果nignx挂了,那么所有的应用就不能访问了,这样明显也是不可取的。那么我们就把nignx双机热备份,通过心跳检测,检测负载均衡服务器,如果一个挂了,立马切换虚拟IP到另外一台nignx备份机。如下图:

        

那么问题又来了,其实只有一台nignx在工作,另外一台只是待命,只有一台挂了,另外一台才工作,这明显利用率低。还有就是请求分发设备有流量并发上限。那么我们如何解决呢?试想,如果我们再到DNS动一下手脚呢?那么我们如果通过双击热备再加上DNS轮询

,用户输入域名通过浏览器访问DNS服务器,得到一个虚拟IP,通过虚拟IP进入相应的双机热备份,下一个用户来了,就用过轮询,用下一个虚拟IP又进入了另外一个虚拟IP对应的双机热备份,这样不久解决了问题吗?如下图所示这样就解决了流量并发发问题

最新文章

  1. Hawk 4.3 转换器
  2. 1 Maximum Product Subarray_Leetcode
  3. jdbcTemplate的Dao层封装
  4. (转载)JAVA线程池管理
  5. Python multi-thread 多线程 print 如何避免print的结果混乱
  6. 手机APP和WAP版的区别
  7. First Missing Positive
  8. excel让每个单元格的宽度随着字体自动变动的两种方式(有更好方法的大神,请忽略,求评论下)
  9. Mingyang.net:为什么不将Bean定义在Action参数中?
  10. 转:如何取得Spring管理的bean
  11. zabbix监控redis多实例(low level discovery)
  12. UVA 10057 A mid-summer night's dream. 仲夏夜之梦 求中位数
  13. SPA UI-router
  14. 前端开发 JavaScript 规范文档
  15. docker的基础命令
  16. Python监控服务器利器--psutil
  17. Redis单机配置以及集群(sentinel、jediscluster)配置
  18. tensorflow报错error,tf.concat Expected int32, got list containing Tensors of type '_Message' instead
  19. Apache Kafka 源码剖析
  20. 迭代器 -> 固定的思路. for循环

热门文章

  1. 【转】 要做linux运维工程师的朋友,必须要掌握以下几个工具才行
  2. Core Animation 文档翻译 (第四篇)
  3. 什么是NAS.什么是黑白群晖?(转)
  4. 微信浏览器返回刷新,监听微信浏览器返回事件,网页防复制,移动端禁止图片长按和vivo手机点击img标签放大图片
  5. Django的ModelForm
  6. MySQL dump简单使用
  7. vue-router 二级路由
  8. BZOJ 1226: [SDOI2009]学校食堂Dining [DP 状压]
  9. BZOJ 3143: [Hnoi2013]游走 [概率DP 高斯消元]
  10. Phalcon调试大杀器之phalcon-debugbar安装