高性能大并发服务器 1
典型服务器结构:
网络I/O+服务器高性能编程技术+数据库
高并发问题:
1.超出数据库连接数:
一个数据库最多同时连接10个当服务器1000个请求,则有990个失败。
2.超出时限
数据库并发连接数为10,1s中最多处理1000个请求,当有10000个请求,则会出现0-10s等待。
解决方案:
1.应用队列+连接池
2.主要业务逻辑在应用服务器处理,数据库制作辅助业务处理
3.缓存 redis(分布式缓存 )
(1)缓存同步,当缓存失效,去数据库查询数据,时效性较差
(2)当数据库更新,则更新前端缓存。
缓存换页,内存不够时,将不活跃的数据患处内存。FIFO (先进先出) LRU (将最近最少使用换出) LFU(最不频繁使用)
4.负载均衡
(1) 数据库
读写分离 数据库 读操作>写操作 使用负载均衡 主从机制 将一个数据分为多个数据库 ,一个用于写 多个用于读,当主库更新数据,从库也更新
(2)应用服务器
1.被动接受任务: 使用任务服务器监控应用服务器的负载(HTTP), cpu io 并发 内存换页,查询到这些信息后,选取负载最低的服务器分配任务
2.主动请求任务:
5.数据库分区(分库、分表)
分库,垂直分区,数据库按照一定的逻辑,把表分散
水平分区
6.服务器性能杀手
1.数据拷贝 缓存
2.环境切换 该不该用多线程,单线程好还是多线程好,
单核服务器(采用状态机编程,效率最佳)
多核服务器能充分发挥多和服务器性能
3.内存分配 增加内存池
4.锁竞争

浙公网安备 33010602011771号