性能和可扩展性模式
性能是系统在给定时间间隔内执行任何操作的响应能力的指标,而可扩展性是系统处理增加的负载而不影响性能或轻松增加可用资源的能力。 云应用程序工作负载通常是可变的并且存在活动高峰。预测这些,特别是在多租户场景中,几乎是不可能的。 相反,应用程序应能够在限制范围内扩展,以满足峰值需求,并在流量减少时缩小规模。可扩展性不仅涉及计算实例,还涉及数据存储,消息传递基础设施等其它元素。
模式目录
模式 | 总结 |
---|---|
缓存模式(Cache-Aside) | 按需将数据从数据存储加载到缓存中。 |
命令和查询责任分离模式(CQRS) | 通过使用单独的接口来分离读取数据和更新数据的操作。 |
事件溯源模式(Event Sourcing) | 使用仅追加存储去记录描述对域中的数据采取的操作的完整系列事件。 |
索引表模式(Index Table) | 为查询经常引用的数据存储区中的字段创建索引。 |
物化视图模式(Materialized View) | 针对所需的查询操作,当数据没有理想地格式化时,在一个或多个数据存储中的数据上生成预填充视图。 |
优先级队列模式(Priority Queue) | 确定发送到服务的请求的优先级,使得具有较高优先级的请求更快地被接收和处理。 |
基于队列的负载均衡模式(Queue-Based Load Leveling) | 使用一个队列作为任务和服务之间的缓冲区,平滑间歇性重负载。 |
分片模式(Sharding)) | 将数据存储区划分为一组水平分区或分片。 |
静态内容托管模式(Static Content Hosting) | 将静态内容部署到基于云的存储服务,可以将它们直接传递给客户端。 |
限流模式(Throttling) | 控制应用程序,个人租户或整个服务的实例消耗的资源。 |