.net 应对网站访问压力的方案总结
开年比较空,抽时间写个博文,总结下自己工作里的一些应对网站访问压力的技术方案。
自己项目现在大概一天50W的pv。已从前端到后端的顺序总结下自己用的一些方案。
一. 前端页面:
1.首先减少资源的大小,能用小图,就用小图。引用第三方js用mini 压缩版的js。
2.用CDN减少服务器访问的压力,将图片,css,js文件放到CDN上。用户从cdn缓存获取资源的速度远快与访问服务器获取的速度。(还有网络关系,cdn网络快)
3.耗时长的js可以异步请求后加载。
二.服务器负载均衡:
负载均衡解决方案有很多,不差钱有不差钱的,屌丝有屌丝的方案。我用的是nginx负载均衡。
准备一台专用的nginx负载均衡服务器,用它来负载均衡,转发给5台业务服务器。(开发需要单台调试时,用hosts指向单台)
三.服务器缓存
因为是分布式架构,服务器缓存主要用了memcached和redis(各配置2台,一台主服务,一台备用)。memcached和redis都有各自的.net版本,用起来也不复杂。
具体选择看业务需求,我基本上70%用memcached,需要长时间缓存的用redis。
memcached对于中文支持不好,要存中文数据,先将中文base64编码在存入,读取时候做base64解码。
四.数据库
我主要使用sqlserver,少量项目用mysql。50W访问量单台sqlserver服务器完全可以支持的住。尽量减少事务,业务需要用消息队列后补处理。
大任务网站不处理,用其他程序处理(响应要求高的修改操作,先修改redis缓存,然后由异步程序操作数据库。)
操作时候记录日志,数据库崩溃或网站崩溃可以读日志文件回补数据操作。(一般服务器挂了不会很久,超过一天不能恢复日子基本没法活了。。真这样在看具体情况找解决方案)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
相关推荐
-
ASP.NET网站第一次访问慢的解决方法
本篇经验以IIS8,Windows Server 2012R2做为案例. IIS8 运行在Windows Server 2012 and Windows 8 版本以上的平台上. IIS中应用程序池和网站是单独存在的,但是网站运行必须建立在对应的应用程序池启动的前提下. 默认情况下,应用程序池在不活动情况下(无请求操作),一段时间后,将被IIS自动回收掉. IIS8 自带应用程序初始化工具包,IIS7.5要搜索独立安装包进行安装,低于7.5的暂时不支持IIS自动初始化. 本篇经验中的方法能解决AS
-
ASP.net中网站访问量统计方法代码
一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间(IP_DateTime),些表的信息本人只保存一天的信息,如果要统计每个月的信息则要保存一个月.因为我不太懂对数据日志的操作,所以创建此表,所以说我笨吧,哈哈. 二.在Global.asax中获取用户信息 在Global.asax的Session_Start即新会话启用时获取有关的信息,同时在这里实现在线人数.访问总人数的增量统计,代
-
用IIS建立的.net网站通过IP地址不能访问解决方法
用iis建立一个.net的网站,在iis中绑定了服务器公网ip的80端口和127.0.0.1的80端口,结果用ip地址不能直接访问,而在局域网中,是可以直接访问的. 因为网站还没有注册,所以要用ip地址来测试网站. 用pache建立的网站,修改httpd.conf文件,bind ip:80 可以外网ip访问 到底怎么回事,后来查到, iis还有个叫主机头的东西,主要用于设置虚拟主机的.用于同一ip下的多网站. 现在通过修改 hosts文件来访问网站,问题解决. 在hosts文件中加入一行 123
-
.net 应对网站访问压力的方案总结
开年比较空,抽时间写个博文,总结下自己工作里的一些应对网站访问压力的技术方案. 自己项目现在大概一天50W的pv.已从前端到后端的顺序总结下自己用的一些方案. 一. 前端页面: 1.首先减少资源的大小,能用小图,就用小图.引用第三方js用mini 压缩版的js. 2.用CDN减少服务器访问的压力,将图片,css,js文件放到CDN上.用户从cdn缓存获取资源的速度远快与访问服务器获取的速度.(还有网络关系,cdn网络快) 3.耗时长的js可以异步请求后加载. 二.服务器负载均衡: 负载均衡解决方
-
Python3爬虫学习之应对网站反爬虫机制的方法分析
本文实例讲述了Python3爬虫学习之应对网站反爬虫机制的方法.分享给大家供大家参考,具体如下: 如何应对网站的反爬虫机制 在访问某些网站的时候,网站通常会用判断访问是否带有头文件来鉴别该访问是否为爬虫,用来作为反爬取的一种策略. 例如打开搜狐首页,先来看一下Chrome的头信息(F12打开开发者模式)如下: 如图,访问头信息中显示了浏览器以及系统的信息(headers所含信息众多,具体可自行查询) Python中urllib中的request模块提供了模拟浏览器访问的功能,代码如下: from
-
WordPress网站访问慢解决方案细图文教程
前言 之前自己搭建一个WordPress个人网站:https://zhanghan.xin:最近发现访问比较慢,于是乎进行了排查,下面是优化的方案. 优化前: 加载耗时:21秒+ 优化后: 加载耗时:250毫秒 优化后访问速度提升84倍+ 解决方案流程图 流程图 问题&解决方案&验证 定位问题(加载一个CSS超时) 解决步骤 下载访问超时的CSS(Google浏览器中F12中可以找到加载CSS地址)并保存到本地(用可以连上google网络) https://fonts.googleapis
-
php获得网站访问统计信息类Compete API用法实例
本文实例讲述了php获得网站访问统计信息类Compete API用法.分享给大家供大家参考.具体如下: 这里使用php获得网站访问统计信息类Compete API,Compete是一个专门用来统计网站信息的网站 <?php // Check for dependencies if (!function_exists('curl_init')) throw new Exception('Compete needs the CURL PHP extension.'); if (!function_e
-
JavaScript统计网站访问次数的实现代码
本文实例讲述了JavaScript统计网站访问次数的实现代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 完整代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>New Page 5</title> <meta name="GENERATOR&qu
-
python实现用于测试网站访问速率的方法
这是python编写的用于测试网站访问速率的代码片段,可以输出打开某url的时间,访问100次的平均时间,最大时间和最小时间等等 import urllib2 from datetime import * import time def Process(url,n): minSpan = 10.0 maxSpan = 0.0 sumSpan= 0.0 over1s = 0 for i in range(n): startTime = datetime.now() try: res = urlli
-
Windows Server 2008 R2网站访问PHP响应慢的解决方法
最近换了台新服务器,由于内存是8G的,所以就换了Windows Server 2008 R2 这款系统,虽然有点陌生,但是熟悉了一下感觉性能非常好,但是在配置完PHP环境之后却发现了问题,访问HTML速度飞快,而访问PHP网页时就要卡顿几秒,好像响应很慢的样子,排除了带宽的因素之后,在百度上搜了一圈,竟然解决了,现在将方法转载给大家,其实解决方法很简单哦. IIS7.5网站访问PHP响应慢的原因 原因是PHP5.3以上支持IPv6协议,但是大家的服务器未使用IPv6,当访问PHP的时候会连接My
-
必备 SQL 查询优化技巧提升网站访问速度
在这篇文章中,我将介绍如何识别导致性能出现问题的查询,如何找出它们的问题所在,以及快速修复这些问题和其他加快查询速度的方法. 你一定知道,一个快速访问的网站能让用户喜欢,可以帮助网站从Google 上提高排名,可以帮助网站增加转化率.如果你看过网站性能优化方面的文章,例如设置服务器的最佳实现.到干掉慢速代码以及 使用CDN 加载图片,就认为你的 WordPress 网站已经足够快了.但是事实果真如此吗? 使用动态数据库驱动的网站,例如WordPress,你的网站可能依然有一个问题亟待解决:数据库
-
教你怎么用JSP统计网站访问人数
统计访问人数1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%&
-
Spring-Boot 访问外部接口的方案总结
目录 一.简介 二.Spring-Boot项目中访问外部接口 2.1 方案一 采用原生的Http请求 2.2 方案二 采用Feign进行消费 2.3.方案三 采用RestTemplate方法 参考文献 一.简介 在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求,针对这一需求目前存在着三种解决方案,下面将对这三种方案进行整理和说明. 二.Spring-Boot项目中访问外部接口 2.1 方案一 采用原生的Http请求 在代码中采用原生的http请求
随机推荐
- jsp实现将信息放入xml中的方法
- Java JDK动态代理的基本原理详细介绍
- Java 最重要布局管理器GridBagLayout的使用方法
- 在Python下使用Txt2Html实现网页过滤代理的教程
- Android仿微信群聊头像
- JavaScript中的substr()方法使用详解
- Android 解决WebView无法上传文件的问题
- android 解决ViewPager加载大量图片内存溢出问题
- 解决js数据包含加号+通过ajax传到后台时出现连接错误
- JavaScript 在线压缩和格式化收藏
- 提高Web性能的前端优化技巧总结
- C#实现动态加载dll的方法
- jQuery EasyUI ProgressBar进度条组件
- jstl中判断list中是否包含某个值的简单方法
- JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
- 简单谈谈javascript中的变量、作用域和内存问题
- WIN7/win2008 r2 X64系统IIS 7.5 ACCESS数据库连接故障解决方法
- 如何识别高级的验证码的技术总结第1/4页
- C#使用Socket发送和接收TCP数据实例
- 解析将多维数组转换为支持curl提交的一维数组格式