阿里云MQ
阿里云众多中间件服务中有一款非常强大的中间见服务,在企业互联网架构中起到不可替代的作用,相比较开源的RabbitMQ,阿里的消息队列MQ承受的住阿里内部1000+核心应用的使用,每天转几千条消息,稳定可靠,多次经过双十一阿里交易、商品、营销等核心链路的真实场景验证!阿里内部的产品名:MetaQ、Notify
作用
- 淘宝引入了消息中间件MQ————异步解耦,削峰填谷
- 消息中间件MQ具有分发,缓存,负载均衡等作用,起到变压器的作用(数据就放到队列里面谁好了谁来拿)
特点
- 每个消息可以有多个消费者,消费者只能订阅后才能收到消息
- 消息有去无回(生产者生产消息,消费者消费消息),不可代替负载均衡器
基本概念
- Topic:消息主题,一级消息类型,通过Topic对消息进行分类
- Tag:消息标签,二级消息类型,用来进一步分区某个Topic下的消息分类
- ProducerID:一类Producer的标识,这组通常生产并发送一类消息,且发送逻辑一致
- ConsumerID:一类Consumer的标识,这组通常接收并消费一类消息,且消费逻辑一致
- MessageID:消息的全局唯一标识,由MQ系统自动生成,唯一标识某条消息
- MessageKey:消息业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑
- Subtopic:MQTT的二级Topic,甚至三级topic都是一级Topic下的子类,使用时直接在代码里设置,无需申请。
- ClientID:MQTT的ClientID是每个客户端的唯一标识,要求全局唯一,使用相同的ClientID连接MQTT服务会被拒绝,MQ约束用户设置ClientID需要符合特定规则。
MQ的三种发送方式
1,可靠同步发送:应用场景广泛,例如重要的通知邮件、报名短息通知、营销短信系统等
2,可靠异步发送:一般用于链路耗时较长,对RT响应时间较为敏感的业务场景
3,单向发送:适用于某些耗时非常短,但可靠性要求并不高的场景,如日志收集
发送TPS | 发送结果反馈 | 可靠性 | |
---|---|---|---|
同步发送 | 快 | 有 | 不丢失 |
异步发送 | 快 | 有 | 不丢失 |
单向发送 | 最快 | 无 | 可能丢失 |