高访问量的系统架构是怎样的?
一直以来,Windows架构体系都是饱受诟病的,因为Windows体系的特殊性使得其扩展性及生态性上比其它体系要弱一些、实施代价大一些,但这并不代表Windows体系支撑不了高并发的项目。
高并发高流量站点面临的挑战有哪些?高并发、高流量的站点对于系统软硬件的要求是极高的,若软、硬件中某一项不达标可能都会使得站点异常。总体来说高并发站点面临的挑战有以下几大方面:
1、单一服务器的性能瓶颈
每台服务器都是有性能上限的,单一服务器根本抗不住高并发大流量的冲击,所以需要需要足够多的服务器以提升处理能力。
2、服务器上行带宽不够
用户对服务器发出请求,服务器返回数据是需要消耗带宽的。在大量用户访问时服务器带宽压力也就会变得很大。
3、数据库读/写速度慢
数据库的读/写操作会受到锁机制的影响,本身就存在I/O开销,访问量较大时数据库性能也会跟着下降。
Windows体系高并发架构方案根据上面提到的高并发站点受到的挑战,我们就可以针对性的来做架构方案以使Windows体系也能承受高并发。
1、负载均衡
通过负载均衡技术,可将流量分摊到多台节点服务器上,这样单一服务器的负载压力就会变小。我们可以在多台Windows服务器上部署IIS站点,然后拿一台服务器作为前置代理服务器,此代理服务器架构模式为:Linux + Nginx 。
2、主从同步 + 读写分离
SQL Server可以通过发布与订阅来实现主从同步,MySQL通过binlog来实现主从同步。
主从同步是为了读写分离作准备的,因为绝大多数都是读多写少,而写锁环境下数据库查询速度会很慢,所以我们将读、写操作分离保读数据读取速度不受写操作的影响。主库负责写入、从库负责查询。
3、热点数据缓存,缓解数据库压力
很多热点数据完全可以从缓存中读取,而不是每次都从数据库中查询。我们建议使用Redis等NoSQL产品来缓存热点数据,从而缓解数据库压力。
4、前端优化,加快响应
前端也有很多细节优化会直接影响网站的加载速度,另外也可以节省服务器带宽压力,比如说:
前端资源走CDN加速,这也就是动静分离;
图片惰性加载,避免加载了不必要的资源,节省了带宽;
图片动态裁剪,使得图片加载速度较快;
请求合并,减少前端资源的排队时间等。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有