系统高并发优化tips

1 Linux 调 参数,和非root
2 数据库和程序在一个机架
3 tomcat,jvm 用 7 最新。调优
4 一台多tomcat, 1台tengine 单独一台机器
5 mysql 主从 非集群
6 数据库缓存 memcached
7 sql 优化
8 mybatis 或者jpa jdbc 而不是hibernate
9 mybatis 不查多表,用程序控制(n+1 问题,因为有缓存,不存在n的问题,但是程序要查询n+1次,不过程序是集群的,多台机器。不够就加机器。而且前端有tengine 反向代理。应用服务器的机器,比数据库服务器机器廉价)
10 session,集群session。memcached。 最好不用session,而是用oauth2 token这种。方便横向拓展。单台服务器里,也要用缓存timecachemap(RotatingMap)。
11 数据不要做外键约束,要做索引
12 分表,分库 ,水平分隔,垂直分隔,对无用的历史数据进行清理备份
13 不要全文搜索
14 资源文件 做cdn
15 使用restful 风格api,所有get请求都是资源
16 前端和后端分离,用json。最好前端封装成 application。
17 程序技术选型时,选用比较稳定,快速的组件,比如用fastjson,而不是gson等。
18 程序可以使用分布式,比如dubbo甚至yarn等。
————
19 数据库换成redis,Cassandra ,hbase等
20 使用 mapreduce,storm等。

评论关闭