服务器架构,说简单不简单,说复杂不复杂,前段时间我们请到了国内服务器顶级攻城狮,他把服务器那点事讲得如此通透简单。

对于一个刚起步的创业公司,不需要考虑太多复杂的服务器架构,能把业务跑起来就行了。但是在早期业务逻辑设计时,懂一些稍微复杂的服务器架构的逻辑,后面可以少走很多弯路。

下面这个图估计大家都明白,这就是最基础的服务器架构。傻瓜式的方法是把应用服务器、文件服务器、数据库服务器全部混合在一起,呵呵呵!但这并不是最科学的。

当业务量持续增加到一定量以后,执行应用程序、读写文件、访问数据库应该有所区分,保证各自的需求都能得到满足,这时候你需要考虑把应用服务器、文件服务器、数据库服务器分离,这个时候的服务器架构应该是下面这样的,它是由三个独立的服务器组成,各司其职。

随着业务量持续增加,应用程序访问缓存数据会成为瓶颈,这个时候需要增加本地缓存,有的也需要分布式缓存。分布式缓存是指缓存部署在多个服务器组成的服务器集群中,以集群的方式提供缓存服务,其架构方式主要有两种,一种是以JBoss Cache为代表的需要同步更新的分布式缓存,一种是以Memchached为代表的互不通信的分布式缓存。如下图:

接下来,应用服务器需要更多台以应对复杂的业务逻辑,那么就需要负载均衡调度服务器来调度和分配应用服务器的工作任务。

再往后,需要考虑数据库服务器的承压能力,通常可以采用主从式数据库服务器架构,把读、写两部分分开,既可以提高数据访问的安全性,也能提高数据读写的效率。

随着业务量暴增,单一区域的服务器带宽将不能承载全国的业务需求,这时候需要增加反向代理和CDN服务器。CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

同样,服务器架构师应该分析文件服务器和数据库服务器的网络读写速度,进一步部署分布式的架构。

对于有搜索和大量查询的网络业务,还需要增加独立的搜索引擎和NoSQL服务器。

对于更复杂的系统,还需要进一步拆分应用服务器,增加消息队列服务器。增加消息队列服务器有以下几点好处:

1,由于消息队列服务器的速度远远高于数据库服务器,所以能够快递处理并返回数据;

2,消息队列服务器具有更好的扩展性;

3,在高并发的情况下,延迟写入数据库,可以有效降低数据库的压力。

对于一些超大型综合互联网业务,应用服务器也需要分布式的架构,这个时候在不同业务的应用服务器之间做好消息协同会有较大的挑战。




原网址:https://blog.csdn.net/daogla/article/details/72877153

傻瓜都能看懂的高并发量服务器架构相关推荐

  1. 连傻瓜都能看懂的基于代码注入的线程守护技术

    连傻瓜都能看懂的基于代码注入的线程守护技术 2010年08月31日 连傻瓜都能看懂的基于代码注入的线程守护技术 Author: 叶紫孤(CPP肥兔) (感谢冷风大哥提供技术支持) E-mail: ye ...

  2. 搞懂分布式技术30:高并发解决方案——提升高并发量服务器性能解决思路

    高并发解决方案--提升高并发量服务器性能解决思路 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很 ...

  3. Docker 极简入门教程,傻瓜都能看懂!

    富 Web 时代,应用变得越来越强大,与此同时也越来越复杂.集群部署.隔离环境.灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁. 本文我们就来探索一下 Docker 的神秘世界,从零到一掌 ...

  4. 高并发解决方案——提升高并发量服务器性能解决思路

    一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站相关的技术经过 ...

  5. 图解高内聚与低耦合,傻瓜都能看懂!

    模块 模块就是从逻辑上将系统分解为更细微的部分, 分而治之, 复杂问题拆解为若干简单问题, 逐个解决. 耦合主要描述模块之间的关系, 内聚主要描述模块内部. 模块的粒度可大可小, 可以是函数, 类, ...

  6. java内聚 耦合_图解高内聚与低耦合,傻瓜都能看懂!

    作者:大道方圆 来源:www.cnblogs.com/xdecode/p/9393885.html 模块 模块就是从逻辑上将系统分解为更细微的部分, 分而治之, 复杂问题拆解为若干简单问题, 逐个解决 ...

  7. 图文并茂,傻瓜都能看懂的 JVM 内存布局

    本 JVM 系列属于本人学习过程当中总结的一些知识点,目的是想让读者更快地掌握 JVM 相关的知识要点,难免会有所侧重,若想要更加系统更加详细的学习 JVM 知识,还是需要去阅读专业的书籍和文档. 本 ...

  8. 春节充电 | 文科生都能看懂的机器学习教程:梯度下降、线性回归、逻辑回归(附动图解释)...

    来源:新智元 本文约4200字,建议阅读10+分钟. 本文浅显易懂的方式讲解机器学习,力求让没有理科背景的读者都能看懂. [ 导读 ]虽然在Coursera.MIT.UC伯克利上有很多机器学习的课程, ...

  9. 文科生都能看懂的机器学习教程:梯度下降、线性回归、逻辑回归

    来源:新智元 本文约4200字,建议阅读10+分钟. 本文浅显易懂的方式讲解机器学习,力求让没有理科背景的读者都能看懂. [ 导读 ]虽然在Coursera.MIT.UC伯克利上有很多机器学习的课程, ...

最新文章

  1. tensorflow(4)踩过的一些坑
  2. python 安装serial模块
  3. 机器学习-降维之主成分分析PCA算法原理及实战
  4. Django从理论到实战(part31)--Django数据库查询操作
  5. 关于电商购物车与订单
  6. 【最全最详细】publiccms常用的代码片段
  7. Python之字符串转换为日期、结合时区的日期操作
  8. Java开发必须熟悉的Linux命令总结
  9. [设计模式] ------ 抽象工厂模式
  10. 为什么python 为什么没有接口_python没有接口吗
  11. Fedora/RedHat上搭建MariaDB
  12. 写在开通博客的第一天
  13. hdu 5076 最小割灵活运用
  14. word鼠标右下角有一个小方块_word
  15. Oracle中的空值问题
  16. 北京h5游戏制作平台有哪些,h5游戏公司实例评测
  17. 计算机无法安装系统,电脑为什么重装不了系统?
  18. 判断浏览器必须是IE10以上,低于IE10做出提示
  19. C# Bitmap转Mat类型
  20. 焦虑的80后新中产,崩溃得不动声色,到底是新中产还是“心中惨”?

热门文章

  1. Javaweb中利用kaptcha生成验证码
  2. 微软官方office2010使用技巧宝典视频免费下载
  3. gflags调试访问越界
  4. 中小型企业纯开源免费工具的解决方案
  5. UML精粹--标准对象建模语言简明教程
  6. python paramiko模块:远程执行命令及上传和下载
  7. kafka基础架构详解
  8. flink HA高可用Standalone集群搭建
  9. k8s:服务发现Service
  10. Python Django 获取多条记录API