阿里MNS中Topic发布和订阅规范 v0.2
本规范基于阿里云的消息服务,所有的Qingger/Runsa应用如果需要在MNS上面建立Topic, 在Topic中发布消息,订阅Topic都需要遵循此规范。
1. 业务Topic命名
- 所有在阿里云建立的TOPIC按照
[应用业务编号]-[ENV]
方式进行命名 - 现应用业务暂时划分为三块 ,环境分为2个,共计6个TOPIC主题订阅
索引 | TOPIC名称 | 备注 |
---|---|---|
1 | QPORTAL-TEST | 主数据测试环境使用的TOPIC |
2 | QPORTAL-PROD | 主数据正式环境使用的TOPIC |
3 | QMKT-TEST | 营销活动测试环境使用的TOPIC |
4 | QMKT-PROD | 营销活动正式环境使用的TOPIC |
5 | QINGGER-TEST(*) | 青鸽其它业务(ESHOP, VSHOP, 云货架,图片中心等)测试环境所使用的TOPIC |
6 | QINGGER-PROD(*) | 青鸽其它业务(ESHOP, VSHOP, 云货架,图片中心等)正式环境所使用的TOPIC |
备注 : 带*的截至到目前还没有产生具体的消息,在需要消息的时候建立此TOPIC。
2. 建立和删除Topic
2.1 建立Topic
- TOPIC的建立统一由运维人员进行建立 (王志亮/李立俊)。 业务相关方只有使用(发布/订阅)的能力,没有建立的能力。
- 任务应用建立Topic并使用其发布消息时,必须编写相关文档并说明消息的业务类型、消息体的结构说明和示例。
- Topic 命名方法:{应用业务编号}-{环境编号},所有的客户都共享一个TOPIC.
- 如果客户体量非常大,共用的TOPIC满足不了需求,那么需要向运维人员提出申请,申请批准后,由运维人员向具体开发人员邮件通知。
TOPIC的使用(发布/订阅)关联的AK/SK由运维邮件通知到各个相关开发/实施人员。
环境编号:
使用TEST代表测试环境,DEMO代表演示环境,PROD代表正式环境,DEV代表开发环境。
现在TOPIC中非特殊情况只使用PROD和TEST环境。
2.2 删除Topic
- 当TOPIC不使用时,由运维人员统一删除TOPIC主题。
3. 在Topic上发布消息
在Topic上发布消息时,消息必须标注标签,以便其他应用在收到消息时能够过滤和识别消息类型;
-
消息标签命名方法:{企业集团ID}-{数据业务ID};
- 企业集团ID:由发送TOPIC消息业务方命名,但遵循以下几个规则 :
- 企业编号取企业有关且好记的英文名。
- 企业编号一般使用大写。
- 示例 : STSAT , LR, SHOEM ...
- 数据业务ID:根据各应用自己的业务来定义,最多7个字符的大写英文字母;
示例: 雇员相关的消息,业务名称可以定义为EMPLOYEE 账户相关的消息,业务名称可以定义为USER
- 消息标签的规范定义:
因为消息标签只能有16个字符限制,在标签中需要存在企业集团ID和数据业务ID两个字段。所以标签的定义规则如下:
- 企业集团ID:CRMID的前8位字符或数字,并且大写。如果产生重复,则由运维进行CRMID的重新定义
-
数据业务ID : 限制为7位字符或数字。
- 以下为标签的几个例子:
STSAT-EMPLOYEE :星期六集团下的雇员信息
LR-POINT :LR集团下的积分信息
发布消息的消息结构体,一般来说为JSON形式。
TOPIC消息标签和数据结构定义必须以文档形式发布,可供查阅。
4. 在Topic上订阅消息
4.1 订阅名称
订阅名称建议命名方法:{环境编号}-{订阅者应用名称}-{企业编号}-{发布者应用名称}-{数据业务ID};
环境编号:订阅者环境编号,其值与 2.1 中的环境编号一致;
-
订阅者应用或服务名称: 订阅者应用的业务名称,由各订阅业务产品定义,如ESHOP, VSHOP,CRM等。
- 业务产品线现包括: ESHOP, VSHOP, YUNOFFLINE, CRM, PORTAL, OMS, WEBSITE等。
企业编号:与 3 中的客户编号一致;如STSAT, LR等
发布者应用名称:即 1 中所列出的Topic业务名称,如QPORTAL, QMKT等。
业务名称:与 3 中的业务名称一致;
以下为订阅名称的几个例子:
DEV-YZ-STSAT-POR-EMPLOYEE:云助开发环境订阅了星期六门户发布的雇员消息
PRODUCTION-DZ-STELLAFASHION-CRM-SITE:店助生产环境订阅了兴记CRM发布的网点消息
4.2 接收端地址
推送类型为http或https
可以理解为收到推送消息的回调地址,需要各个应用自己开发API接口;
为了让回调地址可以最大程度重用,建议在创建订阅时在url上带上自己需要的参数;
以上,http://emp.api.dev.qingger.com 为接口域名,/mns/topic为接口路径,/stsat/por/employee为自定义参数,分别可以帮助各应用确定公司客户,发布者以及业务类型。
4.3 重试策略、消息推送格式
- 重试策略:按照需求定义即可
- 消息推送格式:建议使用JSON格式,但是如果为其它格式,则需要应用文档进行说明。
版本更新
v0.1 : 2017/04/01 发布此规范
v0.2 : 2018/05/01 发布此规范