qian奇岸微信二维码 如您需要快速报价 请加技术经理微信 服务热线
13501992972
"MENU"
首页 > 开发知识 > 正文

大型网站最终将走向大型分布式业务场景

奇岸开发
ahqian.com
09/12/2022
wechat

无需加好友免费技术支持

大型网站的架构设计涉及到很多方面。它不像你想象的那么简单。今天,我想给想从事互联网行业的学生一个初步的概念。

事实上,在架构设计中,有必要了解整个大型网站技术架构的演变过程,知道每个阶段的瓶颈在哪里,以及相应的解决方案。许多公司都很小,很大,尤其是初创公司。如果一步一步地发展,网站架构的演变将经历这些步骤。请注意顺序。

结构演变的第一步:物理分离webserver和数据库

第二步是增加页面缓存

第三步是增加页面片段缓存

第四步:数据缓存

第五步:架构演变: 增加webserver(集群)

第六步:分库(首先考虑)

架构演变第七步:分表,DAL和分布式缓存

第八步:增加更多webserver

架构演变的第九步分离和廉价存储方案

第十步:进入大型分布式应用时代和廉价服务器群梦想时代

由于篇幅的原因,今天我们不重点关注如何一步一步演变的过程。让我们倒先看森林,再看树。

随着互联网技术的快速发展和演变,不断变化的商业应用系统越来越复杂,从单一的应用架构到垂直的应用架构,但仍面临着扩展的问题。流量分散在每个系统中,虽然体积可控,但给开发人员和维护人员带来了极大的麻烦。此时,核心业务被单独提取为单独的系统提供外部服务。在业务之间重复使用,系统也将演变为分布式系统架构。

分布式架构是指每个组件分布在网络计算机上,只通过信息传输和协调行动,以及上述SOA一脉相承的服务架构。

大型网站最终将走向大型分布式业务场景

分布式缓存

在高并发环境下,大量的读写请求涌向数据库,磁盘的处理速度和内存显然不在同一水平。从减少数据库压力和提高系统响应速度的角度来看,数据库前通常会添加一层缓存。由于单台机器的内存资源和承载能力有限,如果大量使用本地缓存,相同的数据会被不同的节点存储,对内存资源造成很大的浪费。因此,分布式缓存诞生了。

分布式缓存系统

memcached ,redis,这里将涉及动态和静态数据的缓存:一致性hash算法,分布式session、多份数据复制、单台缓存失效、集群间自动复制备份等知识点。

CDN

全称:Content Delivery Network或Content Ddistribute Network,即基本的内容分发网络。在现有互联网的基础上,将节点服务器放置在网络各处,形成一层智能虚拟网络,CDN系统可以根据网络流量、各节点的连接、负载状态、用户的距离、响应时间等综合信息,将用户的请求重新引导到最近的服务节点。

目前,大型互联网公司已经建立建立的CDN也有第三方专注于基站CDN的基站等。

主要特点:

1、本地Cache加速提高了企业网站的访问速度(特别是大量图片和静态页面网站),大大提高了上述网站的稳定性

2.镜像服务消除了不同运营商之间瓶颈的影响,实现了跨运营商网络的加速,保证了不同网络中用户的良好访问质量。

3、远程加速 远程访问用户根据DNS负载平衡技术 智能自动选择Cache选择最快的服务器Cache服务器,加快远程访问

4、带宽优化 远程服务器自动生成Mirror(镜像)cache远程用户访问服务器cache在服务器上读取数据,减少远程访问带宽,共享网络流量,减少原站点WEB服务器负载等功能。

5.集群抗攻击 广泛分布的CDN节点与节点之间的智能冗余机制可以有效防止黑客入侵,减少各种情况D.D.o.S攻击对网站的影响,确保更好的服务质量 。

说了这么多,也可以理解为自动分发的缓存系统,优先考虑图片等消耗资源CDN进行访问。

持久化储存

具体来说就是以IBM以主机为代表,以ORACLE以及为代表的关系数据库EMC为代表的高端存储设备,被新型的云计算技术所替换,也就是我们常说的“云化”,也就是廉价存储方案。

IBM在我国金融业中,产品具有绝对优势,Oracle数据库在电信、证券行业占有相当大的份额,EMC在银行、电信、证券等垄断行业,存储占有较大份额,要知道,EMC是世界上最大的存储公司。

由于互联网技术发展日新月异,扩展速度十分迅速,这是传统的电信、金融、证券、保险、电力等行业所不能比的。因此,互联网企业的后台结构需要具有很强的可扩展性。例如,假设一个网站今年只有10万活跃用户,明天可能会上升到1000多万,这就要求后台架构具有很强的可扩展性,可以根据用户数量灵活扩展。

这就是阿里从2008年开始轰轰烈烈地去的原因IOE事件。

数据库拆分

一般情况下,如果查询仍然缓慢,所以根据工作数据库的想法使用分布式数据库(所有节点数据加起来是整体数据),文件系统使用分布式文件系统任何强大的单一服务器都不能满足大型系统持续增长的业务需求,随着业务的发展,数据库读写分离最终不能满足需求,分布式数据库和分布式文件系统需要支持。

分布式数据库是系统数据库拆分的最终方法,只在单表数据规模非常大时使用。更常用的数据库拆分方法是在不同的物理服务器上部署不同的业务数据库。

比如淘宝中期开始的数据库端按业务垂直拆分:按业务交易数据库、用户数据库、商品数据库、店铺数据库等进行拆分。

还有水平扩展,分库分表,结合读写分离。当然,分库分表需要涉及相应的SQL淘宝设计了一套路由规则主库等TDDL要解决这些问题,应用端只需配置相应的规则,对应用端的设计没有任何侵入。

消息系统

消息队列中间件是分布式系统的重要组成部分,主要解决应用耦合、异步消息、流量切割等问题。实现高性能、高可用性、可伸缩性和最终一致性结构。它是大型分布式系统中不可或缺的中间部件。

目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。

使用场景的新闻系统

典型的异步处理,应用解耦、流量切割和消息通信四种场景。

除上述设计和维护(掌握分布式并行计算、报告、监控技术和规则策略)、安全、运营、服务、存储、业务拆分、机房灾难等,做一个大型网站真的不容易。

优知学院(youzhixueyuan),专注于提高互联网人的核心能力,如果你想提高工作场所、管理、架构和最终目标CTO你不能错过这一站!

作者:陈睿|mikechen,前携程定制旅游CTO,现优知学院(专注互联网人核心能力进阶)创始人,在互联网拥有13年产品技术

热度417

了解更多大型网站最终将走向大型分布式业务场景欢迎联系奇岸开发客服。

奇岸开发可定制企业官网小程序、小程序商城、餐饮外卖小程序、预约小程序、多门店小程序、分销小程序及个人小程序。

微信二维码

微信长按识别或扫一扫,无需加好友直接咨询,企业网站开发、网站托管维护、企业管理系统开发、微信小程序制作、域名主机、网站备案、网站改版等提供专业技术解答。

精彩推荐

猜你喜欢