高并发大数据解决方案,高并发的问题,凭着印象在记忆中找出了几条:加带宽,防盗链,使用缓存,大数据库优化。当初都不知道防盗链是是怎么实现的也不知道为什么要防盗链,使用缓存不知道缓存是哪里的缓存。。。。慢慢的到后来,除了和朋友交流中了解的还有自己在工作中遇到并想方法解决的。
下面我就先说一下我了解的一些方案吧。
页面静态化:
大家都知道打开纯静态页比动态页面要快的多,省去了大数据库的请求。页面静态化还有利于搜索引擎的抓取。对网站的排名是非常有利的,说到这里就不得不说“伪静态”了。伪静态顾名思义你从浏览器地址栏看这是静态页面的地址,其实为动态页面。这样做也是为了SEO。现在开发自己做页面静态化的比以前少了,这些工作cdn就给做了。
大数据库优化:
这里要说的就是大数据技术方面了,首先sql语句的优化,简单的就不说了(数据库字段设置,select *,多表联查等等),因为大数据库操作的优化方面细节太多了。这里就说一下大数据库的索引,适当的添加索引对大数据库的优化,建立
大数据应用表可根据业务进行水平、垂直分表,大数据库读写分离,主从大数据库。
防盗链:
想必知道很多公司网站都经历过被抓取,图片被盗用,链接被盗用的情况,我在之前写过一个脚本,抓取某个新闻网站的新闻,抓来后入库放我服务器上,在我得意之时发现,文字抓下来了,图片链接也下来了,但是图片不显示。唉,本该想到,我司就是这么做的,图片单独服务器分配二级域名,与主站分离,接着配置服务器,apache或nginx都有支持,我一般做法是对图片域名限制ip访问。这样不会因为在别人网站盗用我们图片或链接来给我们服务器增加压力。当然这种方式主要也是对系统资源的一种保护。
缓存数据库:
现在大流量公司都会用缓存数据库,redis,memcache大家都知道了,他们的存在减小了数据库的压力,应用场景很多了,当然也不能滥用,首先经常用到的数据,还有经过复杂的查询而得到的数据,不需要落地的数据,比如验证码,还有一个业务逻辑下来中间需要记录的值,还有第一页的评论,以上说了一些使用技巧。欢迎完善。但是要明白缓存数据库终究是一个不可完全信任的数据库,虽然redis可以持久化写入硬盘。
第三方云平台:
大文件首先占用空间大,这里可以把大文件托管在第三方平台。当然不是免费的,一般是按流量计费的。这样能省去自己服务器很大空间,而且第三方的响应速度还是可以的。
CDN加速:
近来才知道的一个加速方式,cdn:内容分发网络,简单举例说一下,我在北京用淘宝买了一本书,书的发货地址是浙江,物流三天到。我在京东上买了一本书,货源也是浙江,物流一天到。京东为什么快,原因是京东在北京仓库有我买的那本书,直接在北京发货了。cdn也支持有页面静态化的功能,但是落地的静态资源好像不太容易改掉,修改资源文件名字是个不错的办法。