高并发读写优化方案

简介: 系统优化方案与高并发读写优化方案,及其优缺点。

优化方案分析

​ 对于一个系统而言,想要综合性提高并发能力,一般采取的都是下面3种方案:

  • 提高单机并发:减少接口的RT(Response Time),提高单个接口的响应速度。
  • 服务水平扩展(水平复制):将高频服务多部署几台,借助负载均衡提升整体性能
  • 做好服务保护:并发提升的情况下,服务的高可用更要保障,做好服务熔断、降级保护措施
    小提示:
    比如当前系统较慢,排查的方法可以从前端-缓存-后端(业务代码/线程池/sql索引)入手。
    具体的优化可以从提高单机并发/服务水平扩展入手。

    高并发读优化

  • 增加缓存:优先查缓存,缓存也可以有多种集群架构,可用性也进一步提升
  • 优化Java代码:同步查询多个接口可以变成异步(CompletableFuture接口),多线程
    • for-rpc/http
      • 假设有一个接口:User queryById(Long userId)
      • 接口调用方:for (Long userId : userIds) {queryById(userId)}
      • 解决方案:让接口提供方提供一个批量操作(CRUD)接口
    • for-db
      • insert:for:save
      • update:for updateById
      • delete: for removeById
      • 解决方案:batch操作-mybatis-mp-sql
  • SQL优化:创建简单索引,涉及多字段的创建聚合索引

高并发写优化

  • 优化Java代码:单线程变多线程写、批量写操作
  • 同步变异步:发个MQ、或者定时任务轮询写
    高并发写(1).jpg
    • 优点
      • 无需等待,大大减少响应时间。
      • 利用MQ存储信息,流量削峰填谷
      • 降低写频率,减少数据库并发压力
    • 缺点
      • 依赖MQ/定时任务可靠性
      • 只是降低频率,没有减少数据库写次数。
  • 合并写请求:所有请求,适用于新增、更新、删除逻辑
    合并写优化(2).jpg

    • 优点
      • 写缓存速度更快,大大减少响应时间
      • 真正有效降低数据库写频率和写次数,减轻数据库并发压力。
    • 缺点
      • 实现复杂
      • 依赖缓存中间件可靠性
      • 不支持事务和复杂业务
目录
相关文章
|
1月前
|
存储 关系型数据库 OLAP
TiDB适用场景解析:海量数据存储与高并发读写的利器
【2月更文挑战第25天】随着大数据时代的到来,海量数据存储和高并发读写成为众多企业面临的挑战。TiDB作为一种高性能、分布式的关系型数据库,以其独特的架构和强大的功能,在多个场景中展现出了卓越的性能。本文将详细探讨TiDB在海量数据存储、高并发读写等场景下的适用情况,分析其在不同业务场景中的优势与应用价值。
|
1月前
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
1月前
|
负载均衡 前端开发 算法
聊聊高并发应用中电商秒杀场景的方案实现
聊聊高并发应用中电商秒杀场景的方案实现
151 0
|
4天前
|
消息中间件 数据挖掘 程序员
【建议收藏】高并发下的分布式事务:如何选择最优方案?
本文介绍了分布式事务的三种常见解决方案。在分布式系统中,事务处理变得复杂,需确保ACID特性。TCC(Try-Confirm-Cancel)方案适用于严格资金要求的场景,如银行转账,通过预留、确认和取消步骤确保一致性。可靠消息最终一致性方案适合一致性要求较低的场景,如电商积分处理,通过消息中间件实现最终一致性。最大努力通知方案则用于允许不一致的场景,如数据分析,通过重复通知尽可能达成一致性。选择合适的方案取决于具体应用场景。
22 5
|
9天前
|
canal 缓存 关系型数据库
高并发场景下,6种方案,保证缓存和数据库的最终一致性!
在解决缓存一致性的过程中,有多种途径可以保证缓存的最终一致性,应该根据场景来设计合适的方案,读多写少的场景下,可以选择采用“Cache-Aside结合消费数据库日志做补偿”的方案,写多的场景下,可以选择采用“Write-Through结合分布式锁”的方案,写多的极端场景下,可以选择采用“Write-Behind”的方案。
40 0
|
1月前
|
安全 应用服务中间件 Linux
高并发下Nginx优化(一)
【4月更文挑战第15天】高并发下Nginx优化
35 0
|
1月前
|
存储 NoSQL Java
探索Java分布式锁:在高并发环境下的同步访问实现与优化
【4月更文挑战第17天】Java分布式锁是解决高并发下数据一致性问题的关键技术,通过Redis、ZooKeeper、数据库等方式实现。它确保多节点共享资源时的同步访问,防止数据不一致。优化策略包括锁超时重试、续期、公平性和性能优化。合理设计分布式锁对支撑大规模分布式系统至关重要。
|
1月前
|
缓存 负载均衡 网络协议
作者推荐 | 高并发挑战?试试这些架构优化篇技巧,让你的系统焕发新生!
作者推荐 | 高并发挑战?试试这些架构优化篇技巧,让你的系统焕发新生!
58 1
|
1月前
|
监控 NoSQL Java
记一次线上商城系统高并发的优化
记一次线上商城系统高并发的优化
38 0
|
8月前
|
缓存 Java 应用服务中间件
【高并发优化手段】基于Springboot项目(二)
【高并发优化手段】基于Springboot项目
291 0

热门文章

最新文章