分布式系统中的性能要求与分析
在当今的企业应用中,响应能力是一项重要的非技术需求。只有在合理的时间内处理客户端请求,系统才能为企业带来业务价值。在分布式系统中,满足性能要求需要综合考虑所有参与的应用程序。
1. 服务级别协议(SLA)
企业应用通常需要满足服务级别协议(SLA)。SLA 分别定义了可用性或响应时间的阈值。为了计算和满足 SLA,必须考虑业务用例中包含哪些流程和应用程序,特别是在同步通信方面。同步调用外部系统的应用程序的性能直接取决于这些调用的性能,因此应避免分布式事务。
SLA 的达成依赖于所有应用程序的良好协作。每个应用程序都会影响依赖系统的 SLA,不仅仅是系统中最慢的应用程序,而是所有参与的服务都会产生影响。例如,如果 SLA 要求系统的正常运行时间达到 99.995%,但其中包含对两个分别保证 99.995% 正常运行时间的应用程序的同步调用,那么最终的 SLA 只能达到 99.99%(即各参与系统的值相乘)。对于保证的响应时间也是如此,每个涉及的系统都会减慢整体响应,总响应时间是所有 SLA 时间的总和。
2. 在分布式系统中实现 SLA
假设企业应用处于高性能场景中,满足保证的响应时间至关重要。该应用与一个或多个提供必要信息的后端系统进行同步通信,整个系统需要满足 200 毫秒的 SLA 响应时间。
在这种情况下,后端应用程序通过应用背压(backpressure)来支持满足 SLA 时间,即预防性地拒绝那些无法满足保证 SLA 的请求。这样,发起请求的应用程序就有机会使用另一个可能及时响应的后端服务。
为了正确配置线程池,工程师需要知道后端系统的平均响应时间(这里是
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



