
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习软件编程开发等互联网技术,而本文我们就通过案例分析来简单了解一下,高性能编程都有哪些常用方法。
总结主要针对三点:架构、故障转移、资源隔离性能。防御措施则分为事前防御和事后防御,当然事前防御是核心,事后防御直接作为下下策的兜底手段使用。
架构
架构主要考虑的就是冗余,冗余很好理解机器越多,可用性会更高。水平的分库分表也是一种冗余。
故障转移
对于DB依赖性高的业务,可以考虑把异常输出到FO库或者对于业务场景的上下文写入到消息队列,保存现场,故障恢复之后进行重新推送处理。
不可抗力的三方因素需要考虑异地多话,冗余灾备以及定期演练。
资源隔离
对于依赖上游同时会因为上游推送数据压力巨大的系统,需要做好核心业务和非核心业务资源隔离。对于高并发的业务需要单独机器部署,比如秒杀的场景。
可用性计算:A系统可用性90%,B系统的可用性40%,A系统某服务强依赖B系统,那么A系统的可用性为P(A|B),可用性大大降低。
事前防御手段
良好的监控排查机制。比如RocketMq、RabbitMq提供可视化界面,ELK三件套日志监控等手段。
限流/熔断/降级:上游业务流量突增,下游必需做好挡板和措施,解决方式是做好做好完备的压力测试和熔断检测能力。同时多准备几套方案,当然大部分下能接触这个难度的业务基本都有成熟的兜底手动,各个公司都有不同思路,这里不过多扩展。
代码质量:这个算是为务实的一项,要对于自己代码进行一定的压力考验,比如前面提到的突然大量的更新删除如何从JVM层面防止大对象进入频繁GC。代码质量的好方式当然是有专业的审查代码人员,代码质量不过关打回去重写,但是大部分公司基本是没有这东西的,所以只能自己平时多思考和多看优秀案例了。
事后防御
事后防御都是擦屁股,所以优先考虑恢复关键业务,以及故障是否可以兜底回滚或者重试。比如下游调用失败提供手动触发调用机制,上游提供手动回调的操作等等。这些小操作在关键时刻能帮大忙。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。