系统非功能性需求解析
1. 服务负载均衡与隔离模式
在系统设计中,服务的负载均衡和隔离是重要的考虑因素。常见的服务架构中,所有对服务 0 的请求会在其主机间进行负载均衡。若服务 0 的主机不可用,它将无法响应任何请求。为了增强系统的容错性,可以将服务 0 的主机划分为不同的池,每个池分配给特定的请求者。这样,一个池的主机不可用不会影响其他请求者。不过,这种方式也存在明显的权衡,当某些请求者的流量激增时,各池之间无法相互支持。我们可以根据需要手动或自动调整池的规模。
2. 回退模式
回退模式是指检测到问题后执行替代代码路径,例如使用缓存响应或调用类似的替代服务。以客户端请求后端获取附近百吉饼咖啡馆列表为例,如果后端服务中断,客户端可以使用之前缓存的响应,虽然可能不是最新的,但比返回错误消息给用户要好。另一种选择是客户端向第三方地图 API(如 Bing 或 Google Maps)发出请求,但这些 API 可能没有后端提供的定制内容。设计回退模式时,需要考虑其可靠性,因为回退本身也可能失败。
3. 性能、延迟和吞吐量
性能或延迟是指用户向系统发出请求到收到响应的时间,包括请求从客户端到服务的网络延迟、服务处理请求并生成响应的时间以及响应从服务返回客户端的网络延迟。不同类型的应用对延迟有不同的要求,如面向消费者的应用通常期望延迟在几十毫秒到几秒之间,而高频交易应用可能要求延迟在几毫秒以内。
为了实现低延迟,可采取以下设计决策:
- 将服务部署在离用户地理位置较近的数据中心,减少数据包传输距离。
- 若用户地理分布分散,可将服务部署在多个数据中心,以最小化与用户群的地理距离。同时,服务需具备水平可扩
超级会员免费看
订阅专栏 解锁全文

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



