当前位置:首页 > 智能硬件 > 安全设备/系统
[导读] 大型网站,比如门户网站,在面对大量用户访问、高并发请求方面带来的问题 1.大并发:在同一个时间点,有大量的客户来访问我们的网站,如果访问量过大,就可能造成网站瘫痪。 2.大流量:

大型网站,比如门户网站,在面对大量用户访问、高并发请求方面带来的问题

1.大并发:在同一个时间点,有大量的客户来访问我们的网站,如果访问量过大,就可能造成网站瘫痪。

2.大流量:当网站大后,有大量的图片,视频, 这样就会对流量要求高,需要更多更大的带宽。

3.大存储:你的数据量会成海量的数据,如果我们的数据放入一张表,是无法应对的。可能对数据保存和查询出现问题。

基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器,(对架构分层+负载均衡+集群)这几个解决思路在一定程度上意味着更大的投入。

解决方案:

一、提高硬件能力、增加系统服务器。(当服务器增加到某个程度的时候系统所能提供的并发访问量几乎不变,所以不能根本解决问题)

二、使用缓存(本地缓存:本地可以使用JDK自带的 Map、Guava Cache.分布式缓存:Redis、Memcache.本地缓存不适用于提高系统并发量,一般是用处用在程序中。比如Spring是如何实现单例的呢?大家如果看过源码的话,应该知道,Spiring把已经初始过的变量放在一个Map中,下次再要使用这个变量的时候,先判断Map中有没有,这也就是系统中常见的单例模式的实现。)

分布式缓存利器Redis集群,Redis集群的搭建至少需要三主三从。

1. 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。

2. 节点的fail是通过集群中超过半数的节点检测失效时才生效(所以一个集群中至少要有三个节点)。

3. 客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。

4. 集群中每一个节点都存放不同的内容,每一个节点都应有备份机。

5. redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护nodeslotvalue

Redis 集群中内置了16384 个哈希槽,当需要在Redis 集群中放置一个key-value 时,redis先对 key 使用 crc16 算法算出一个结果,然后把结果对16384 求余数,这样每个key 都会对应一个编号在0-16383 之间的哈希槽,redis会根据节点数量大致均等的将哈希槽映射到不同的节点。

三 、消息队列 (解耦+削峰+异步)通过异步处理提高系统性能,降低系统耦合

在不使用消息队列服务器的时候,用户的请求数据直接写入数据库,在高并发的情况下数据库压力剧增,使得响应速度变慢。但是在使用消息队列之后,用户的请求数据发送给消息队列之后立即 返回,再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库。由于消息队列服务器处理速度快于数据库(消息队列也比数据库有更好的伸缩性),因此响应速度得到大幅改善。

通过使用消息中间件对Dubbo服务间的调用进行解耦, 消息中间件可利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式环境下扩展进程间的通信。通过消息中间件,应用程序或组件之间可以进行可靠的异步通讯,从而降低系统之间的耦合度,提高系统的可扩展性和可用性。

四 、采用分布式开发 (不同的服务部署在不同的机器节点上,并且一个服务也可以部署在多台机器上,然后利用 Nginx 负载均衡访问。这样就解决了单点部署(All In)的缺点,大大提高的系统并发量)

五 、数据库分库(读写分离)、分表(水平分表、垂直分表)

这种的集群在遇到单表数据量超过2000万的时候,mysql性能会受损,所以一个集群还不够,我们需要把数据分到另一个集群,这个称为“切片”,就是把大量的数据拆分到不同的集群中,每个集群的数据都是不一样的,通过MyCat这个阿里巴巴的开源中间件,可以把sql分到不同的集群里面去。

PXC集群方案所有节点都是可读可写的,Replication从节点不能写入,因为主从同步是单向的,无法从slave节点向master点同步。PXC同步机制是同步进行的,这也是它能保证数据强一致性的根本原因,ReplicaTIon同步机制是异步进行的,它如果从节点停止同步,依然可以向主节点插入数据,正确返回,造成数据主从数据的不一致性。

PXC是用牺牲性能保证数据的一致性,ReplicaTIon在性能上是高于PXC的。所以两者用途也不一致。PXC是用于重要信息的存储,例如:订单、用户信息等。ReplicaTIon用于一般信息的存储,能够容忍数据丢失,例如:购物车,用户行为日志等。

六、 采用集群 (多台机器提供相同的服务)系统架构方案

七、CDN 加速 (将一些静态资源比如图片、视频等等缓存到离用户最近的网络节点)

八、浏览器缓存 页面静态化(使用php自己的ob缓存技术实现, 主流的mvc框架(tp,yii,laravel)模板引擎一般都自带页面静态化 )

九、使用合适的连接池(数据库连接池、线程池等等)

十、适当使用多线程进行开发。

十一、使用镜像

镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定时更新或者实时更新。有很多专业的现成的解决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。

十二、图片服务器分离

大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的、甚至很多台的图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃。在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持、尽可能少的LoadModule,保证更高的系统消耗和执行效率。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本次直播活动旨在纪念那些为现代互联网 奠定基础的发展 新泽西州皮斯卡特维2024年5月13日 /美通社/ -- 旨在通过推动技术进步以造福人类的全球最大技术专业组...

关键字: IEEE 互联网 TCP GOOGLE

近日,字节跳动发布《企业纪律与职业道德委员会通报(2024年2号)》,因涉嫌构成刑事犯罪、违反廉洁诚信制度、违反利益冲突制度、违反信息安全制度四项原因辞退员工61人。近年来,多家互联网公司密集进行内部反腐整顿,包括腾讯、...

关键字: 互联网 字节跳动 辞退 腾讯 百度

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

机器人技术将与移动互联网、物联网、大数据、云计算、人工智能等新一代数字技术进一步融合,特别是5G技术将使工业机器人成为工业智能制造体系的一部分,通过实时传输数据提高效率。

关键字: 机器人 医疗机器人 互联网

在这个互联网时代我们的数据越来越多但也越来越透明,想不明白自己的手机号和姓名是怎么泄露的,每天都会有各种广告推销打给自己,也曾听说谁谁谁的照片不知道为何被外泄讨论。数据存储和安全管理已经成为企业运营和个人生活中不可或缺的...

关键字: 铁威马 互联网 nas网络存储

SAP(思爱普)近日发出的裁员计划,不仅涉及全球范围内约8000个职位,更是在中国区造成了近1500名正式员工和合同工不续的情况。

关键字: 软件 互联网

最近总是出现iPhone16和ipad的概念新闻,以前为了跟风也会更换手机,后来是因为职业原因拍摄大量视频照片占据手机空间而不得已换了一部又一部手机。但慢慢地我发现,想要查找几年前的视频总得翻找之前的手机,流程繁杂又拖沓...

关键字: NAS 互联网 存储

近日,国内领先的在线旅行服务平台去哪儿宣布完成鸿蒙原生应用Beta版本开发,成为旅行行业中首批完成Beta版开发的应用之一,该版本已经实现了机票预订、支付、服务等功能,将为用户提供更为便捷、智能的旅行体验。这不仅为旅行行...

关键字: 鸿蒙 互联网 智慧旅行

随着科技的飞速发展,我们日常生活的方方面面都在逐渐被智能化、网络化所渗透。物联网(Internet of Things, IoT)作为一项将传统物品与互联网相结合的技术,正在引领着一个全新的技术革命。从家用电器到工业制造...

关键字: 物联网 互联网 IoT

3月12日是万维网(World Wide Web,互联网)创建35周年的日子,让我们来了解一下万维网发明者蒂姆·伯纳斯-李(Tim Berners-Lee)对网络和未来发展三点预测。

关键字: 互联网 伯纳斯李 AI助理 AI
关闭
关闭