0%

2016 Summary

技术

  • 并发-多线程,线程池。在保证效率的情况下不要轻易使用多线程。多线程不可控,黑盒运行。Guava异步回调可以根据实际场景适当的运用。JVM内存模型和运行机制(类加载机制)需要加强。
  • Redis 缓存的使用,能够进行缓存的数据结构设计。String,List,Queue,HashMap,Set。
  • 缓存设计,根据不同的应用场景设计不同的缓存方案。String数据结构和HashMap数据结构需要区分,很多场景既能使用String,又能使用HashMap。这种情况使用String往往会产生大量的Key值,使用HashMap又不便于扩展,取值复杂。需要合理选择。
  • 缓存淘汰策略,当大量读写数据库和缓存时,采取合理的缓存淘汰策略能够避免脏数据的产生,也能减少缓存miss。在多线程读写数据库Save Or Update时,处理不当会造成主键重复异常等,缓存会产生脏数据,采用先淘汰缓存后更新数据库。(先淘汰后更新,PubSub更新,事务隔离前淘汰等。)
  • 数据库事务,数据库事务机制能够保证数据的准确性,操作的原子性。但事务运用的不当时,会造成代码运行速度下降,系统负担加大。目前Web项目中,数据库事务机制大多由Spring管理,Spring Aop对事务的切入点不对会造成大片的代码段锁死。
  • RPC框架,模块之间相互通信框架。是对HTTP的一种封装和优化。目前常用RPC有:Dubbo,Hessian。采用RPC框架可以使各个层之间解耦合(或者最大限度地松耦合)。
  • MongoDb,一种非关系型(NOSQL)数据库。集合,文档的概念,对于存储json非常方便。
  • NodeJs