什么是常见的网站服务器架构?
1.初始阶段网站架构
一般来说,大网站是从小网站开发的。一开始的架构相对简单。随着业务的复杂性和用户的激增,许多架构改进已经开始。当它仍然是小网站时,访客不多。一般来说,只需要一台服务器。此时,应用程序,数据库,文件等所有资源都在一台服务器上。
2.应用服务和数据服务的分离
随着网站服务的发展和用户数量的增加,一台服务器无法满足需求。大量用户访问导致访问速度越来越慢,增加数据会导致存储空间不足。此时,有必要将应用程序与数据分开。应用程序和数据分离后,整个网站使用三个服务器:应用程序服务器,文件服务器和数据库服务器。这三个服务器具有不同的硬件资源要求:
·应用服务器业务逻辑需要强大的CPU
·数据库服务器具有大量磁盘读写操作,需要更快的磁盘和更多的内存
·文件服务器存储用户上传的文件,因此需要更多的磁盘空间
3.使用缓存来改善网站性能
随着用户的增加,网站将再次面临挑战:过多的数据库压力将导致整体站点访问效率再次下降,并且用户体验将受到影响。一个网站,通常80%的商务访问集中在20%的数据上。例如,要求最多的微博是数百万粉丝的大V的微博,几乎没有人关注你的主页,除了你自己。我根本不打开。由于大多数业务访问都集中在少量数据上,因此这一小部分数据首先缓存在内存中,而不是每次都进入数据库,这样可以减少数据库的访问压力,从而提高数据库的访问压力。整个网站访问速度。
网站使用的高速缓存通常分为应用程序服务器的高速缓存或专用的分布式高速缓存服务器。缓存到应用程序服务器本身要快得多,但由于其自身的内存限制,它通常不适合。远程分布式缓存使用专用于缓存服务的集群,并且在内存不足时可以轻松地动态扩展。
4.使用应用服务器集群提高网站的并发处理能力
使用缓存后,数据访问压力得到缓解,但单个应用程序服务器可以处理请求连接受到限制。在网站访问的高峰期,应用服务器成为整个网站的效率瓶颈。分布式集群的使用是解决网站的高并发性和海量数据问题的常用方法。当服务器的处理能力和存储空间不足时,请勿尝试更换功能更强大的服务器。对于大的网站,服务器有多强大,无法满足网站不断增长的业务需求。在这种情况下,更适合添加服务器以共享原始服务器的访问和存储压力。对于网站架构,只要通过添加服务器可以提高负载压力,服务器就可以以相同的方式不断改进,以不断提高系统性能,从而实现系统可扩展性。在网站可扩展架构设计中,应用服务器实现集群是一个相对简单和成熟的集群。按APP软件
负载均衡调度服务器可以将访问请求从用户的浏览器分发到应用服务器集群中的任何服务器。如果有更多用户,请在群集中添加更多应用服务器,以免应用服务器的压力成为整个网站的瓶颈。
5.数据库读写分离
使用缓存后网站,这样大多数数据读取操作都可以在没有数据库的情况下完成,但仍然有一些读操作(缓存访问未命中,缓存过期)和所有写操作需要访问数据库,在网站后用户到达由于负载压力过高,数据库成为网站的瓶颈。目前,大多数主流数据库都提供主从热备份功能。通过配置两个数据库主从关系,可以将一个数据库服务器的数据更新同步到另一个服务器。 网站利用数据库的这一特性实现数据库的读写分离,从而提高数据库的负载压力。如下图所示:
当应用程序服务器写入数据时,它将访问主数据库。主数据库通过主从复制机制将数据更新同步到辅助数据库,这样当应用程序服务器读取数据时,它可以从数据库中获取数据。为了便于应用程序访问读写分离数据库,通常在应用程序服务器端使用专用数据访问模块,使数据库读写分离对应用程序透明。
6.使用反向代理和CDN加速网站响应
随着网站业务的不断发展,用户规模越来越大。由于中国网络环境复杂,当不同地区的用户访问网站时,速度差异也很大。研究表明,网站访问延迟与用户流失率正相关,而访问速度越慢,网站越慢,用户就越容易失去耐心和离开。为了提供更好的用户体验并留住用户,网站需要加快网站的访问速度。主要手段是使用CDN和反向代理。
7.使用分布式文件系统和分布式数据库系统
任何功能强大的单一服务器都无法满足大型网站不断增长的业务需求。读取和写入数据库后,它将从一台服务器拆分为两台服务器。但是,随着网站服务的发展,无法满足需求。在这种情况下,需要分布式数据库。对于需要使用分布式文件系统的文件系统也是如此。分布式数据库是网站数据库拆分的最后手段,仅在单表数据的大小非常大时才使用。当没有必要时,更常用的网站数据库拆分方法是业务子数据库,它在不同的物理服务器上部署不同服务的数据。
8.使用NoSQL和搜索引擎
随着网站服务变得更加复杂,对数据存储和检索的需求变得越来越复杂。 网站需要采用一些非关系数据库技术,如NoSQL和非数据库查询技术,如搜索引擎。 NoSQL和搜索引擎都是基于Internet的技术,可为可扩展的分布式功能提供更好的支持。应用服务器通过统一的数据访问模块访问各种数据,减轻了应用程序管理多个数据源的麻烦。
9.业务拆分
为了应对日益复杂的业务场景,大型网站通过使用分而治之将整个网站业务划分为不同的产品线。例如,大型购物交易网站将主页,商店,订单,买家,卖家等分成不同的产品线,并分配给不同的业务团队。
具体而言,从技术上讲,根据产品线划分,将网站拆分为许多不同的应用程序,并且每个应用程序都是独立部署的。应用程序可以通过超链接建立关系(主页上的导航链接每个指向不同的应用程序地址),或者通过消息队列进行数据分发,当然,最多的是访问相同的数据存储系统以形成关联完整的系统,
10.分布式服务
随着业务拆分越来越小,存储系统变得越来越大,应用系统的整体复杂性呈指数级增长,使部署和维护变得越来越困难。由于所有应用程序都连接到所有数据库系统,在数万个服务器级别的网站中,这些连接的数量是服务器大小的平方,导致数据库连接资源不足和拒绝服务。
由于每个应用系统需要执行许多相同的业务操作,例如用户管理,商品管理等,因此可以独立地提取和部署这些共享服务。可重用服务连接到数据库以提供共享服务服务,并且应用系统仅需要管理用户界面,并且通过分布式服务调用共享服务以完成特定的业务操作。
大型网站的架构已经在这里发展,大多数技术问题都可以解决。
汇海 Technology是领先的综合性软件和信息服务公司,为客户提供从软件开发到营销和推广的互联网解决方案,旨在成为业界领先的全链信息技术服务提供商。公司与中国移动,平安银行,南方数字,北大青鸟,西门子等行业巨头进行了全面深入的战略合作。深入涉足汽车,金融,电子商务,农业,教育等重点行业,不断开拓全国市场,为客户提供全方位的连锁服务。优质,高效,技术服务,综合优势和行业特色。武汉哪家公司做网站?武汉哪家公司做网站?哪家公司是网站?武汉着名的网站建设公司?武汉的武汉网站生产企业有哪些?武汉网站外包?武汉有哪些可靠的软件开发公司?武汉有哪些更好的app开发,微信开发和系统开发公司?如果您有这样的需求,请联系汇海技术,财富热线:027-86633307,我们将以专业的服务态度做到每一个需要,这是我们的目标,使每一个需要到极致!
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。
上一篇:
谈谈如何实现HTML5的离线存储
下一篇:很抱歉没有了