高并发:系统同时并行处理的请求数量。
web网站都是追求在同时尽可能多的处理请求,我们可以从以下几个方面考虑尽可能提高网站的并发量:
1.减少数据库访问次数,
2. 文件和数据库分离(比如页面静态化),
3. 大数据分布式存储(比如:Mysql的主从配置读写分离),
4. 服务器的集群负载均衡,
5. 页面缓存的使用(对于页面使用局部页面缓存或数据缓存),
6. nosql内存数据库代替关系型数据库等
分布式的案例
1. Django项目中MySQL主从配置读写分离
在Django项目中为了提高数据库的查询速度,我们使用主从配置来实现MySQL的读写分离。但是虽然我们这么做能提高一部分的性能,假如用户的请求依旧很多,还是有访问的瓶颈,所以建议使用基于内存的非关系型数据库,比如Mongo或Redis.
2. 爬虫中的分布式爬虫这两个角度来说。
爬虫项目使用scrapy-redis来实现分布式,由于scrapy本身的调度器(scheduler)并不支持分布式,所以使用第三方插件scrapy-redis来实现。scrapy-redis是把所有请求的url通过调度器存入redis的有序集合(zset)中同时基于fingerpoint(或者BloomFilter)来实现去重,而spider只要启动多个线程或进程从redis的集合中取url进行解析数据就可以。