文章首发公众号:海天二路搬砖工
0. 引言
在微服务架构中,谈到SLA保证,我们更多是从宏观的角度来需求解决方案。比如,通过合理服务拆分来增加系统整体的可维护性;通过多实例部署来保证系统的灾备。但是单个服务是可靠性、性能其实也是保证系统SLA的重要一环。
本文将介绍提升单体服务SLA的一些设计原则/方法
1. 开关可控
开关可控是指通过在系统中加入一些控制开关,以便在运行时或配置时对某些功能进行开启或关闭,从而满足不同的业务需求。它实现了让系统的部分部分功能"可插拔"的效果,方便业务人员快速调整系统功能。
开关可控通常应用于以下场景:
- 定制化需求处理:某一个定制化需要,可以通过在系统中加入一个开关进行开启或关闭,方便快速处理定制化需求并减少业务人员的开发成本。
- 测试平稳迭代:通过开关独立控制系统的某个功能,将其独立于其他阶段进行功能测试和性能监控,这样就可以高效地完成系统的迭代和测试,同时降低了对整个系统的影响。
- 功能开发:通过对功能进行开关控制,可以逐步向用户推导新功能和服务,以紧密配合用户的需求,同时避免过度或不必要地浪费预算和时间。
2. 故障隔离
微服务架构下的单个服务设计而言,故障隔离是指当服务的内部某些逻辑异常、或者外部依赖项发生故障时,服务能够将其隔离,使用替代服务,或者提供柔性服务。
在具体的实现过程中,编码时需要加入对各种错误和异常情况的处理逻辑。例如,当程序出现空指针引用、参数错误、数组越界等情况时,应该抛出相应的异常或记录错误信