任务解耦
使接收和处理在时间上分开,并各自独立发生。
流水线化(pipline)编程
不同阶段的请求由系统中独立的部分处理。负责接收消息的子系统不用阻塞到上一条消息处理完成。
流量削峰填谷(流量优化)
系统负载可能经常变化,但是请求到达的间隔时间对负责处理请求的组件是隐藏的。总体的系统延迟会由于排队而增加,但这通常仍比响应失败并重试请求更好。
队列大小取决于工作负载和应用程序。对于相对稳定的工作负载,我们可以通过测量任务处理时间以及各任务的平均排队时间来确定队列大小,从而确保在提升吞吐量的同时,延迟仍保持在可接受的范围内。在这种情况下,队列大小相对较小。对于不可预测的工作负载,可能会出现任务提交的突发流量,这时队列大小也应当考虑突发流量和高负载。