高并发系统的一些经验积累
总是在实践中总结的,一点一点的积累吧。
先说系统架构设计,尽量少用框架,不要在不了解的情况下去应用一项新技术,比如NETTY,几层架构的封装,在你用的不多的情况下完全是找不到北,调试无从谈起,事实上,至今我还有个系统,应用NETTY做为客户端,调试了很久,性能一直起不来,这就是败笔。
实际上,上面的道理在JAVA API里已经说的很清楚了,在应用HashMap的时候说:。。。而不冒在将来不确定的时间发生任意不确定行为的风险
HashMap在并发访问时,当元素达到内置数组上限时而进行扩充时会造成死循环。
应用层架构,尽量帮后端数据库挡住压力,把数据向前推。
代码层面,少用锁,用锁的操作越尽量原子化,比如自增形式订单号的生成,把除开前后缀的部分之外自增的那一部分放在锁里,而不是全部放锁里。
数据库么,表分解,少用TEXT/VARCHAR等字段,字段尽量设计的短一些,聚合索引注意一下先后顺序,如,查询一个有效的订单,索引顺序应该为订单号+状态,而不是状态+订单号,即,让变化的部分排最前,不变的部分尽量在后面。
浙公网安备 33010602011771号