阿里云消息队列

阿里消息队列

参考阿里云官网地址:
https://help.aliyun.com/document_detail/34411.html?spm=a2c4g.11186623.6.544.7fb547b1YCTghH

SpringBoot 整合开发
https://blog.csdn.net/qq_38011415/article/details/83386062

简介

消息队列(Message Queue,简称 MQ)是阿里巴巴集团自主研发的专业消息中间件。 产品基于高可用分布式集群技术,提供消息订阅和发布、消息轨迹查询、定时(延时)消息、资源统计、监控报警等一系列消息云服务

优势

 1)丰富的属性配置支持普通队列、延迟队列、优先级队列等多种队列模式
2)支持海量并发
3)消息投递保证(确保消息至少成功消费一次)
4)用户资源隔离(接入阿里云子账户,资源隔离,确保非法获取)
5)分布式事物消息
6)消息日志管理(查看每一条消息的生命周期,重发等)
7)支持云监控

名词解释

名称 含义
Message 消息,消息队列中信息传递的载体
Message ID 消息的全局唯一标识,由 MQ 系统自动生成,唯一标识某条消息
Message Key 消息的业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑
Topic 消息主题,一级消息类型,通过 Topic 对消息进行分类
Tag 消息标签,二级消息类型,用来进一步区分某个 Topic 下的消息分类
Producer 消息生产者,也称为消息发布者,负责生产并发送消息
Producer ID 一类 Producer 的标识,这类 Producer 通常生产并发送一类消息,且发送逻辑一致
Consumer 消息消费者,也称为消息订阅者,负责接收并消费消息
Consumer ID 一类 Consumer 的标识,这类 Consumer 通常接收并消费一类消息,且消费逻辑一致
消息类型
1)普通消息
2)定时消息
3)延时消息
4)事物消息
5)顺序消息
消费模式
参考:
https://help.aliyun.com/document_detail/43163.html?spm=a2c4g.11186623.6.552.b9f83036LmDbFc

  1. 集群消费
    一个 Consumer ID 所标识的所有 Consumer 平均分摊消费消息。例如某个 Topic 有 9 条消息,一个 Consumer ID 有 3 个 Consumer 实例,那么在集群消费模式下每个实例平均分摊,只消费其中的 3 条消息。
  2. 广播消费
    一个 Consumer ID 所标识的所有 Consumer 都会各自消费某条消息一次。例如某个 Topic 有 9 条消息,一个 Consumer ID 有 3 个 Consumer 实例,那么在广播消费模式下每个实例都会各自消费 9 条消息。
    快速入门
    参考
    https://help.aliyun.com/document_detail/34411.html?spm=a2c4g.11186623.6.544.19caa3cbBOFTKp

消息队列首先需要有它的主题Topic,生产者producer,消费者consumer。其中主题与生产者的对应关系为N:1,主题与消费者的对应关系为N:N。依次创建三者:

开发指南

常量类PropertyKeyConst
名称 类型 默认值 描述
AccessKey String 阿里云账号管理控制台中创建的 AccessKey,用于身份认证
SecretKey String 阿里云账号管理控制台中创建的 SecretKey,用于身份认证
OnsChannel String ALIYUN 用户渠道,阿里云:ALIYUN,聚石塔用户为:CLOUD
ONSAddr String 设置 MQ TCP 协议接入点
NAMESRV_ADDR String 设置 Name Server 列表(不推荐),与 ONSAddr 二选一
ConsumerId String Consumer 实例的唯一ID,您在控制台创建的 Consumer ID
MessageModel String CLUSTERING 设置 Consumer 的消费模式,集群消费:CLUSTERING,广播消费:BROADCASTING
ConsumeThreadNums String 64 消费线程数量
MaxReconsumeTimes String 16 设置消息消费失败的最大重试次数
ConsumeTimeout String 1 BatchConsumer每次批量消费的最大消息数量,默认值为1,允许自定义范围为[1, 32],实际消费数量可能小于该值
CheckImmunityTimeInSeconds String 30 设置事务消息第一次回查的最快时间,单位(秒)
shardingKey String 顺序消息中用来计算不同分区的值
suspendTimeMillis String 3000 只适用于顺序消息,设置消息消费失败的重试间隔时间,单位(毫秒)

消息类Message

消息类,表示要发送的消息。一条合法的消息,应包含主题(Topic),消息体以及可选的标签和业务标识。
注意:我们对每条消息的自定义键值对的长度没有限制,但所有的自定义键值对,系统键值对序列化后,所占空间不能超过 32767 字节。
1)无参构造
默认方法,即创建消息对象
2)有参构造
(1) 语法:public Message(String topic, String tag, String key, byte body)
(2) 语法:public Message(String topic, String tags, byte body)
参数:
名称 类型 描述
topic String 消息主题,最长不超过 255 个字符;由a-z、A-Z、0-9、中划线”-“以及下划线”_”构成
tags String 消息标签,请使用合法标识符,尽量简短且见名知意
key String 业务标识,一般加前缀用于区别
body byte 消息体,消息体长度默认不超过 4M,具体请参阅集群部署文档描述注意:生产与消费的序列化规则
3) 主题(topic)
语法:public void setTopic(String topic) 设置主题
语法:public String getTopic() 获取主题
4) 标签(Tag)
语法:public void setTag(String tag) 设置标签
语法:public String getTag() 获取标签
5) 消息(MsgId)
语法:public void setMsgID(String msgid) 设置消息ID
语法:public String getMsgID()获取消息ID
6) 业务(Key)
语法:public void setKey(String key) 设置业务key
语法:public String getKey()获取业务key
7) 消费重试次数(reconsumeTimes)
语法:public void setReconsumeTimes(int value)设置消息重试消费次数
语法:public int getReconsumeTimes()消息消费时,获取消息已经被重试消费的次数
8) 定时消息开始投递时间(startDeliverTime)
注:可用于延时
语法:public void setStartDeliverTime(long value)
设置消息的定时投递时间(绝对时间),最大延迟时间为40天
语法:public long getStartDeliverTime()获取定时消息开始投递时间
9) 消息生产时间(bornTimestamp)
语法:public void setBornTimestamp(long value)设置消息的产生时间
语法:public long getBornTimestamp()获取消息的生产时间
10) 产生消息的主机(bornHost)
语法:public void setBornHost(String value)设置生产消息的主机
语法:public String getBornHost()获取产生消息的主机

  1. 自定义属性值(userProperties)
    语法:public void putUserProperties(String key, String value)
    描述:添加用户自定义属性键值对; 该键值对在消费消费时可被获取。
    参数:
    名称 类型 描述
    key String 自定义属性键
    value String 自定义属性值
    返回值:无
    语法:public String getUserProperties(String key)
    描述:获取用户自定义属性的值。
    参数:
    名称 类型 描述
    key String 自定义属性键
    返回值:
    类型 描述
    String 自定义属性值

  2. 顺序消息分区值(shardingKey)
    语法:public void setShardingKey(String value)
    设置顺序消息中用来计算不同分区的值
    语法:public long getShardingKey() 获取顺序消息中用来计算不同分区的值

你可能感兴趣的:(阿里云)