知识卡片
队列保护事务
内容
并发数控制把超过上限的事务放入队列,防止服务器资源耗尽,同时保留待处理业务。发散:当业务必须被处理时,排队比丢弃更适合,前提是队列容量和优先级设计清楚。
参考来源
- 位置:《图解基础设施设计模式》第4章《性能与可扩展性需求的实现策略:防止系统性能下降》"4.3 超负荷应对策略的设计方式"(并发数控制模式)一节(源文件:_epub-src/OEBPS/text00000.html)
- 结论依据:原文明确"当访问超过这个上限值时,这次访问就会排列到系统内的中间件所管理的队列中,并按照进入队列的顺序等待处理……由于超过上限值的事务系统不会处理,因此可以避免系统陷入超负荷状态。而同时,业务虽然进入等待状态,但并不会丢失,因此该模式适用于需要确保任何时候事务都必须被处理的系统"。
- 原始内容:通过中间件控制系统的并发业务数……在系统中预先确定并发业务数的上限值,当访问超过这个上限值时,这次访问就会排列到系统内的中间件所管理的队列中,并按照进入队列的顺序等待处理……由于超过上限值的事务系统不会处理,因此可以避免系统陷入超负荷状态。而同时,业务虽然进入等待状态,但并不会丢失,因此该模式适用于需要确保任何时候事务都必须被处理的系统。