《大型分布式网站架构设计与实践》读书笔记——系统稳定性

282 阅读2分钟

高并发系统设计

  1. 操作原子性。
  2. 多线程同步。
  3. 数据一致性
  4. 系统可扩展性
  5. 并发减库存

性能优化

  1. 前端性能优化
    • 尽量减少页面HTTP请求数量。合并样式和脚本文件。
    • 是否使用CDN网络。降低静态资源传输造成的网络延迟。
    • 是否使用压缩。
  2. 后台Java程序优化
    • 单例模式。减少对象实例数。
    • Future模式。异步处理,省去不必要的等待。
    • 线程池。提高资源利用率,保证线程使用的稳定性。
    • 选择就绪。使用非阻塞的NIO通信模式(如Netty框架),借助高效的Buffer、Channel和Selector等设计,提升程序的并发吞吐能力。
    • 减少上下文切换。合理控制并发。
    • 降低锁竞争。减少线程的等待。
  3. 压缩与减负。优化通信协议和服务间的交互,减少网络传输的字节数。使用负载均衡机制降低单台设备的负荷。
  4. 结果缓存。避免重复的数据库操作,使用缓存的内存读写来替代磁盘IO,可以提升响应速度。
  5. 数据库查询优化。
    • 合理使用索引。保证索引被命中,左前缀原则。
    • 反范式设计。通过增加冗余字段来避免表的关联操作,以空间换效率。
    • 使用数据库的查询缓存。
    • 使用搜索引擎。在一些特别的场景下,使用搜索引擎来提供复杂条件查询,如使用Elasticsearch。
    • 使用K-V等nosql数据库。数据扁平化的存储可以有效提升查询效率,也更适用于分布式系统的大数据场景。
  6. GC优化。合理设置JVM参数,优化程序逻辑。
  7. 硬件提升性能。