1 高并发系统定义
|
--1.1 服务器的连接数是有限制的
|
--1.2 数据或资源被同时访问或同时修改
|
--1.3 并发计算
2 高并发系统解决方案
|
--2.1 多线程解决,线程同步(不同线程访问同一数据,同一集合,修改和读取同一数据,使用Lock带来的性能问题)
|
--2.2 大数据解决并发
|
--2.3 Redis等削峰,(Server接受请求,给Client作出响应,然后在从队列或换成中把数据进行入库处理)
3 优化
|
--3.1 消息处理(日志处理)
| |
| |
|--- |3.1.1 日志:kafka,RabbitMQ,ZeroMQ,:一个分布式消息系统(http://www.cnblogs.com/metoy/p/4452124.html)
|--- |3.1.2 系统消息设计: 前台和后台业务消息,操作消息
|
--3.2 数据库设计
| |
| |3.2.1 数据库架构(横向架构:分表,分区;纵向架构:分库,读库和写库分离完成读写分离实现读写分离技术手段:sqlserver事物复制)
| |3.2.2 系统访问数据设计(应用程序池的换成,操作数据的正确释放和回收)
|
--3.3 缓存
| |3.3.1 前台缓存(jquery,cookie,flash的缓存)
| |3.2.2 后台缓存系统:Cache的使用,数据表缓存,文件依赖缓存,分布式缓存MemerCache的使用
--3.4 负载均衡
| |3.4.1 硬件负载均衡F5
| |3.4.2 软件负载均衡(Nginx实现WEB代码),LVS实现TCP方式的负载)
4 设计模式的引入
--4.1 单例(解决太多类的实例对内存的消耗)
|--- |4.1.1 数据库访问类
|--- |4.1.2 消息类
|
--4.2 消费者模式
| |
| |4.2.1 消息和错误记录
| |4.2.2 系统访问数据设计(应用程序池的换成,操作数据的正确释放和回收)
|
--4.3 懒汉模式
| |4.3.1 前台缓存(jquery,cookie,flash的缓存)
| |4.2.2 后台缓存系统:Cache的使用,数据表缓存,文件依赖缓存,分布式缓存MemerCache的使用
--4.4 外观模式(解决定制和公共版的区分)
| |4.4.1
| |4.4.2
5 系统架构
--5.1 业务需求的满足(有服务收集需求-->需求分析人员-->给研发主管(经理)定时间分工记录到dot.project上-->开发人员根据projectos上的内容进行开发)
|--- |5.1.1 适合系统扩容(横向的功能扩展,纵向功能实现)
|--- |5.1.2 快速应对需要变更
|--- |5.1.3 易于分析问题
|
--5.2 开发需求满足
| |
| |5.2.1 降低开发人员对公共的修改
| |5.2.2 完成的API和前后台接口
|
--5.3
| |5.3.1
| |5.2.2
--5.4
| |5.4.1
| |5.4.2