服务的性能瓶颈

影响服务的性能因素有很多,我这里简单聊一下。
通常随着业务扩展数据量增加和并发增大,会出现接口吞吐量降低,接口访问时间增加,数据库压力过大,出现宕机或者性能明显降低。
首先优化点可以考虑代码层面:
1、代码是否存在I/O循环调用、方法使用不当(比如简单for、增强for抑或stream流使用)等问题。
2、代码中逻辑是不是太过复杂,一个搜索接口中又调用其他搜索接口,查看是否可以拆分成多个单搜索(这个需要和业务方进行沟通)
3、sql是否存在容易导致索引失效的问题,导致全表搜索。这个网上关于此问题有很多(比如模糊查询中全模糊、前模糊会导致索引失效,union和union all等等)
数据库方面可以考虑:
1、使用读写分离或者分片
读写分离,一般的使用是写主库,读从库。
这里可能会有数据一致性问题,处理方法的话:
1、通过双写主从
2、非强一致性业务场景,可以适当放弃一致性要求,提高性能。页面缓存,分布式数据缓存
3、强一致性的功能可以直接在主库进行读写。根据不同功能,选择接口是否需要一致性。
4、页面直接给提示,数据提交需要一定时间(eg:60s)让用户等待再刷新。
2、使用缓存
这个是比较行之有效的方案,这个我认为是优先于读写考虑的。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值