(1) 解耦‘
允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。
(2) 冗余:
消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢 失风险。许多消息队列所釆用的”插入族取-删除”范式中,在把一个消息从队列中 删除之前,需要你的处理系统明确的指岀该消息已经被处理完毕,从而确保你的数 据被安全的保存直到你使用完毕。
⑶扩展性,
因为消息队列解耦了你的处理过程,所以増大消息入队和处理的频率是很容易的, 只要另外増加处理过程即可。
(4) 灵活性&峰值处理能力:
在访问量剧増的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常 见。如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。 使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请 求而完全崩溃。
(5) 可恢复性,
系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合 度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后 被处理。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。