热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

随着并发量上升服务器架构设计演变

对于一个刚起步的创业公司,不需要考虑太多复杂的服务器架构,能把业务跑起来就行了。但是在早期业务逻辑设计时,了解一些高并发大流量的服务器架构

        对于一个刚起步的创业公司,不需要考虑太多复杂的服务器架构,能把业务跑起来就行了。但是在早期业务逻辑设计时,了解一些高并发大流量的服务器架构的逻辑,在设计上做好必要的预留,后面可以少走很多弯路。

 

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

 

 

 

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

 

 

 

 

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

 

 

 

 

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

 

 

 

 

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

 

 

 

 

 

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

 

 

 

 

 

 

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

 

 

 

 

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

 

 

 

 

 

 

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

 

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

 

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

 

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

 

 

 

 

 

 

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

 

 

 

 

下面列举服务器架构中重点技术的流行方案:

CDN:腾讯云cdn/华为云cdn/阿里云cdn/网宿科技/联通/移动/电信

反向代理:nginx/Apache TS

负载均衡:Lvs/Nginx/HAProxy

分布式缓存:Redis,memcache

消息队列:Kafka/ActiveMQ/DDMQ

 

并发测试工具:

  • Apache JMeter
  • Visual Studio性能负载测试
  • Microsoft Web Application Stress Tool
  • 阿里云性能测试




推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Java工程师书单(初级,中级,高级)
    简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序 ... [详细]
  • 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)【下载本文PDF进行阅读】设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践。在经过多年的软件开发实践之后,回过头 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • MySQL:互联网公司常用 分库分表
    本文目录一、数据库瓶颈IO瓶颈CPU瓶颈二、分库分表水平分库水平分表垂直分库垂直分表三、分库分表工具四、分库分表步骤五、分库分表问题非partit ... [详细]
  • 传统|同类_Spring Boot进阶:原理实战与面试题分析读后感
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringBoot进阶:原理实战与面试题分析读后感相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • Spring MVC 浅谈
    大学时写的的文章,当时文章水平略差,大家见谅。MVC这个词儿,最早的定义应该是作为一种软件架构设计模式出现在软工里面的,即使用model、view、controller来设计及定 ... [详细]
  • 【Java编码规范】《阿里巴巴Java开发手册(正式版)》发布!
    2019独角兽企业重金招聘Python工程师标准2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Ja ... [详细]
  • 不愧是阿里内部“千亿级并发系统架构设计笔记”面面俱到,太全了
    写在前面金九银十招聘季来了,不知道大家有没有发现一件事,现在不管是互联网大厂,还是初创公司,那些面试官总喜欢拿高并发和你说 ... [详细]
author-avatar
520谢鹏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有