课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了高并发编程开发需要满足的一些开发需求等内容,而本文我们就继续来学习一下,高并发编程优化都有哪些方法。
高并发优化
高并发除了需要对服务器进行垂直扩展和水平扩展之外,作为后端开发可以通过高并发优化,保证业务在高并发的时候能够稳定的运行,避免业务停滞带来的损失,给用户带来不好的体验
缓存:
服务端缓存
内存数据库
redis
memcache
方式
优先缓存
穿透DB问题
只读缓存
更新/失效删除
注意
内存数据库的分配的内存容量有限,合理规划使用,滥用终会导致内存空间不足
缓存数据需要设置过期时间,无效/不使用的数据自动过期
压缩数据缓存数据,不使用字段不添加到缓存中
根据业务拆分布式部署缓存服务器
客户端缓存
方式
客户端请求数据接口,缓存数据和数据版本号,并且每次请求带上缓存的数据版本号
服务端根据上报的数据版本号与数据当前版本号对比
版本号一样不返回数据列表,版本号不一样返回新数据和新版本号
场景:
更新频率不高的数据
异步
异步编程
方式:
多线程编程
nodejs异步编程
场景:
参与活动成功后进行短信通知
非主业务逻辑流程需要的操作,允许异步处理其他辅助业务,等
业务异步处理
方式
业务接口将客户端上报的数据PUSH到消息队列(MQ中间件),然后就响应结果给用户
编写独立程序去订阅消息队列,异步处理业务
场景:
大促活动整点抢限量红包
参与成功后委婉提示:预计X天后进行红包发放
并发量比较大的业务,且没有其他更好的优化方案,业务允许异步处理
注意:
把控队列消耗的进度
保证幂等性和数据终一致性
缺陷:
牺牲用户体验
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。