消息队列MQS,顾名思义,是用于发送接收消息用的。废话不说,直接进入主题。
使用场景:服务添加了一个新功能,主要用于生成图片,本人用的开发语言是PHP,生成图片比较耗服务器性能,如果使用一台服务器生成的话,生成大量图片时速度就会很慢。
由此决定使用3台服务器同时处理,将任务分布到3台服务器中。另外有一台服务器用于提交任务。
mqs支持多个生产者、多个消费者并发访问一个队列(本例是一个生产者,3个消费者)。
简单的服务器部署情况如下图:
具体的代码实现这里就不再说明了,个人是根据官方的API文档稍微封装了一下:http://www.aliyun.com/product/mqs/?spm=5176.383338.201.16.ZoLW8Q#Help
服务器部署完之后,封装好API之后,接下来使用就很简单了,
管理后台可以添加修改队列配置,
过程比较简单:
1.生产者添加消息
2.消费者取出消息,完成业务逻辑后通知队列已经完成
添加队列如下:
说明一下隐藏时长的个人理解:消费者取出消息,过了(隐藏时长)未通知队列处理完成,那认为消息还没消耗掉,可以再取出!
关于具体如何使用这里就不多做介绍,官方文档也比较齐全,而且对接小二热情周到!
本人使用MQS三个多月,还没出现消息遗漏的情况,解决了大量任务分布处理的需要,非常稳定方便!
总体来说,相当满意!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/