高并发读写优化方案

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

优化方案分析

​ 对于一个系统而言,想要综合性提高并发能力,一般采取的都是下面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

    • 优点
      • 写缓存速度更快,大大减少响应时间
      • 真正有效降低数据库写频率和写次数,减轻数据库并发压力。
    • 缺点
      • 实现复杂
      • 依赖缓存中间件可靠性
      • 不支持事务和复杂业务
目录
相关文章
|
6月前
|
存储 监控 固态存储
在高并发环境下,如何优化 WAL 的写入性能?
在高并发环境下,如何优化 WAL 的写入性能?
|
9月前
|
存储 关系型数据库 OLAP
TiDB适用场景解析:海量数据存储与高并发读写的利器
【2月更文挑战第25天】随着大数据时代的到来,海量数据存储和高并发读写成为众多企业面临的挑战。TiDB作为一种高性能、分布式的关系型数据库,以其独特的架构和强大的功能,在多个场景中展现出了卓越的性能。本文将详细探讨TiDB在海量数据存储、高并发读写等场景下的适用情况,分析其在不同业务场景中的优势与应用价值。
|
4月前
|
存储 监控 固态存储
在高并发环境下,如何优化 WAL 的写入性能?
在高并发环境下,如何优化 WAL 的写入性能?
|
1月前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
2月前
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
3月前
|
缓存 关系型数据库 MySQL
高并发架构系列:数据库主从同步的 3 种方案
本文详解高并发场景下数据库主从同步的三种解决方案:数据主从同步、数据库半同步复制、数据库中间件同步和缓存记录写key同步,旨在帮助解决数据一致性问题。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
高并发架构系列:数据库主从同步的 3 种方案
|
8月前
|
消息中间件 数据挖掘 程序员
【建议收藏】高并发下的分布式事务:如何选择最优方案?
本文介绍了分布式事务的三种常见解决方案。在分布式系统中,事务处理变得复杂,需确保ACID特性。TCC(Try-Confirm-Cancel)方案适用于严格资金要求的场景,如银行转账,通过预留、确认和取消步骤确保一致性。可靠消息最终一致性方案适合一致性要求较低的场景,如电商积分处理,通过消息中间件实现最终一致性。最大努力通知方案则用于允许不一致的场景,如数据分析,通过重复通知尽可能达成一致性。选择合适的方案取决于具体应用场景。
238 5
|
4月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
119 4
|
4月前
|
缓存 监控 负载均衡
nginx相关配置及高并发优化
Nginx的高并发优化是一个综合性的过程,需要根据具体的业务场景和硬件资源量身定制。以上配置只是基础,实际应用中还需根据服务器监控数据进行持续调整和优化。例如,利用工具如ab(Apache Benchmarks)进行压力测试,监控CPU、内存、网络和磁盘I/O等资源使用情况,确保配置的有效性和服务的稳定性。
198 0
|
6月前
|
存储 缓存 安全
.NET 在金融行业的应用:高并发交易系统的构建与优化之路
【8月更文挑战第28天】在金融行业,交易系统需具备高并发处理、低延迟及高稳定性和安全性。利用.NET构建此类系统时,可采用异步编程提升并发能力,优化数据库访问以降低延迟,使用缓存减少数据库访问频率,借助分布式事务确保数据一致性,并加强安全性措施。通过综合优化,满足金融行业的严苛要求。
75 1

热门文章

最新文章