搜档网
当前位置:搜档网 › ESB访问规范

ESB访问规范

ESB访问规范
ESB访问规范

信息集成平台消息服务是一种高效、可靠、安全、便捷、可弹性扩展的分布式消息服务。能够帮助应用之间传递数据,。

信息集成平台消息服务提供两种功能:队列模型(Queue)和主题模型(Topic)。

其中队列模型支持一对一发送和接收消息;主题模型提供pub/sub模型,支持一对多订阅和通知消息。

队列模型

队列模型保证消息至少会被消费一次,支持多个生产者和消费者并发操作同一个消息队列。

消费消息时尽量做到先进先出,但并不保证能按照消息的发送顺序消费消息,如果业务必需先进先出,建议在消息中加入序号信息以便消费消息后进行重新排序。

主题模型

主题模型支持服务端主动将消息推送给用户,消除用户程序不必要的轮询和资源消耗。

主题模型保证通知消息按照指定的策略推送给用户,支持多个消息发布者并发操作同一个主题。

主题模式支持一对多广播消息,一条通知消息可以同时被多个订阅者接收和消费。

队列模型

平台管理员通过CreateQueue接口创建出一个消息队列。

生产者、消费者

生产者,向信息集成平台消息服务的消息队列发送消息的角色。消费者,从信息集成平台消息服务的消息队列获取消息的角色。

主题模型

主题所有者

开通信息集成平台消息服务服务的 Account 通过CreateTopic接口

创建出一个主题,这个 Account 就是该主题的所有者

,主题所有者拥有该主题的所有操作权限。

发布者、订阅者

发布者,向信息集成平台消息服务的主题发布消息的角色。

订阅者,从信息集成平台消息服务的主题接收消息的角色。

Queue

队列是消息存储的目的地,队列可以分成普通队列和延时队列两类。如果发送消息时不指定消息延时参数,被发送到普通队列的消息立刻可以被消费,而发送到延时队列需要经过

设定的延时时间后才能被消费。

QueueURL

格式:http://$AccountId.信息集成平台消息服

务.https://www.sodocs.net/doc/024727784.html,/queues/$QueueName

信息集成平台消息服务.https://www.sodocs.net/doc/024727784.html,:信息集成平台消息服务访问域名, Region 是信息集成平台消息服务部署的区域,用户

可以根据应用

需要选择不同的地域;

AccountId:队列所有者的帐号 ID;

QueueName:队列名称,同一个AccountId在同 Region 中的队列名不能重名。

队列消息

用户发送到队列的消息;

发送消息时可以指定消息体、消息延迟时长、消息优先级;

消息属性

MessageId

消息编号;

(batch) send/receive/peek message 操作返回该属性;

一个队列中每个消息都有唯一的MessageId;

消息发送到队列中,信息集成平台消息服务会生成一个MessageId,该编号一旦生成就不会变化,可以用来做数据校

队;

NextVisibleTime

消息下次可被消费的时间,从1970年1月1日 00:00:00 000 开始的毫秒数;

(batch) receive message 和 change message visibility 操作返回该属性;

ReceiptHandle

消息临时句柄;

(batch) receive message 和 change message visibility 操作返回该属性;

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

该句柄用于删除和修改处于Inactive状态的消息,NextVisibleTime 之前有效,超过该时间使用句柄

信息集成平台消息服务会提示MessageNotExist;

消息临时句柄只能使用一次,如果该句柄标识的消息状态发生改变,

该句柄就会失效;

MessageBody

消息正文;

(batch) receive/peek message 操作返回该属性;MessageBodyMD5

消息正文的MD5值;

(batch) send/receive/peek message 操作返回该属性;EnqueueTime

消息发送到队列的时间,从 1970年1月1日 00:00:00 000 开始的毫秒数;

(batch) receive/peek message 操作返回该属性;FirstDequeueTime

消息第一次被消费的时间,从1970年1月1日 00:00:00 000 开始的毫秒数;

(batch) receive/peek message 操作返回该属性;

如果消息从未被消费过,该属性与EnqueueTime相同;DequeueCount

消息总共被消费的次数(即被receive的次数);

(batch) receive/peek message 操作返回该属性;

Priority

消息的优先级权值,取值范围:1~16,其中1为最高优先级;(batch) receive/peek message 操作返回该属性;

消息类型

延时消息

-

-

-

-

-

-

-

-

-

-

-

-

-

-

这类消息发送到队列后,需要经过DelaySeconds指定的时间后才可被消费;

发送(batch)send message请求时指定或者配置队列的DelaySeconds 属性;

消息状态

普通消息被发送到普通队列时,初始状态是 Active,当其被取走后

在VisibilityTimeout的时间内状态

为 Inactive,若超过VisibilityTimeout时间后消息还未被删除,消息会重新变成Active状态;如果在

VisibilityTimeout时间内被删除,消息状态变为 Deleted。

普通消息发送到延时队列时,消息初始状态 Delayed,经过延时队列的DelaySeconds属性值设定的

时间后,消息状态变成 Active。

延时消息发送到消息队列(普通队列或者延时队列),消息的初始状态为 Delayed,经过消息的

DelaySeconds属性指定的时间后消息状态变成 Active。

消息的最长存活时间由创建队列时指定的MessageRetentionPeriod 属性值决定,超过此时间后消

息状态会变成 Expired,将被垃圾回收器回收。

消费者只能取到处于 Active 状态的消息。

Topic

主题是发布消息的目的地,发布者可以通过PublishMessage接口向主题发布消息。

主题属性

MaximumMessageSize

消息体的最大长度,单位为Byte;

取值范围:1024 ~ 65536Byte(64KB);

该属性用于限制发送到队列的消息体最大长度,超过该长度发布消息

将失败;

LoggingEnabled

是否开启日志管理功能;

取值范围:True/False;

当该属性为True时,信息集成平台消息服务将收集主题的消息操作日志推送到指定的地方,日志管理请参考详情;

CreateTime

主题的创建时间,从 1970-1-1 00:00:00到现在的秒值LastModifyTime

修改主题属性信息的最近时间,从 1970-1-1 00:00:00 到现在的秒值;

MessageRetentionPeriod

消息在主题中的最长保留时间,单位为秒;

从发送到该主题开始经过此参数指定的时间后,不论消息是否被成功推送给用户都将被删除;

MessageCount

该主题中消息数目;

包含已经被推送给用户的消息,不包含过期被回收的消息;TopicURL

标识 Topic 的URL,格式:http://$AccountId.信息集成平台消息服务.https://www.sodocs.net/doc/024727784.html,/topics/$TopicName

信息集成平台消息服务.https://www.sodocs.net/doc/024727784.html,:信息集成平台消息

服务访问域名,Region 是信息集成平台消息服务部署的区域,用户可以根据应用

需要选择不同的地域,具体各区域的访问域名可以在控制台通过获取地址操作查看。

AccountId:主题所有者的帐号 ID,实际调用信息集成平台消息服务的 API 时请换成实际的帐号 ID,查看方法请参

考快速入门。

TopicName:主题的名称,信息集成平台消息服务使用者在实际调用信息集成平台消息服务的 API 时替换成实际的主题名称。同一个AccountId在同一个 Region 中的主题名称不能重名。

主题消息

用户发布到主题的消息;

发布消息时可以指定消息体、消息标签和消息额外属性;

主题消息的最长保留时间为1天,超过这个时间,不论消息是否成功推送给用户,都将被垃圾回收器回收;

消息属性

MessageId

消息的编号;

-

-

-

-

-

-

-

-

-

一个主题中每个消息都有唯一的MessageId;

Message

消息正文;

MessageMD5

消息正文的MD5值;

MessageTag

消息的标签;

当发布消息时指定了消息标签,信息集成平台消息服务将只推送消息给接收这类标签消息的订阅;

PublishTime

消息的发布时间,从 1970-1-1 00:00:00 000 到消息发布时的毫秒值;

Subscription

Subscription 描述一个订阅关系,包括被订阅的主题和接收消息的Endpoint;

订阅者通过 Subscribe 接口创建订阅,信息集成平台消息服务根据订阅的描述给用户推送消息,推送的起点是订阅时 Topic 中

最新的消息;

订阅创建成功后,信息集成平台消息服务会向指定的 Endpoint 推送消息。如果 Endpoint 不可用,信息集成平台消息服务会按照指定的重试策

略进行重试,重试失败后,会丢弃消息;

订阅属性

Endpoint

接收消息的Endpoint;

支持类型:HttpEndpoint、QueueEndpoint和MailEndpoint;FilterTag

过滤消息的标签;

类型:字符串

-

-

-

-

-

-

-

-

-

-

-

-

-

指定了该属性后,信息集成平台消息服务仅推送消息标签与该属性一致的消息到对应的Endpoint;

NotifyStrategy

消息推送出现错误时的重试策略;

取值范围:BACKOFF_RETRY/EXPONENTIAL_DECAY_RETRY;

当推送消息失败时,信息集成平台消息服务将按照该属性指定的重试策略进行重试,超过重试策略的次数后,信息集成平台消息服务将丢弃这条消息,继续推送下一条消息;

具体的重试策略请参考NotifyStrategy;

NotifyContentFormat

推送给Endpoint的消息格式;

取值范围:XML/SIMPLIFIED;

具体推送消息的格式请参考NotifyContentFormat;

CreateTime

订阅的创建时间,从 1970-1-1 00:00:00 到现在的秒值;LastModifyTime

修改订阅属性信息的最近时间,从 1970-1-1 00:00:00 到现在的秒值

SubscriptionURL

标识 Subscription 的 URL 格式

:http://$AccountId.信息集成平台消息服

务.https://www.sodocs.net/doc/024727784.html,/topic/$TopicName/subscriptions/$Su bscrip

tionName

信息集成平台消息服务.https://www.sodocs.net/doc/024727784.html,:信息集成平台消息服务访问域名,Region 是信息集成平台消息服务部署的区域,用户可以根据应用

需要选择不同的区域,具体各区域的访问域名可以在控制台通过获取地址操作查看;

AccountId:表示主题所有者的帐号 ID,实际调用信息集成平台消息服务的 API 时请替换成实际的帐号 ID;

TopicName:表示主题的名称,实际调用信息集成平台消息服务的 API 时请替换成实际的主题名称;

SubscriptionName:表示Subscription的名称,实际调用信息集成平台消息服务的 API 时请替换成实际

Subscription 的名称。同一个订阅者订阅相同的主题时,SubscriptionName不能重复。

通信协议

支持通过 HTTP 协议进行请求通信。

请求方法

使用 HTTP 的 PUT、 POST、 GET、 DELETE 等 HTTP Method 发送不

同的请求,详情参考队列接口规范和主题接口规范章节。

相关主题