# 订阅配置
订阅配置即配置数据模型业务数据分发给下游业务系统(订阅者)。
访问路径【主数据管理门户】→ 【数据分发】→【订阅配置】进入订阅配置页面。

# 新增订阅配置
点击【新增】按钮弹出新增配置弹框,选择推送方式和配置相关信息,配置行列权限

数据模型:从已发布的模型列表中选择一个模型。
订阅系统:选择一个订阅者系统。(关于如何配置订阅者系统,请参考订阅系统)
推送方式:包含
手动推送(浏览数据维护列表,选择数据和推送目标进行发送)自动推送(选择一个时间段的全部数据按数据发布时间先后顺序进行发送)和实时推送(当数据发布或禁用|启用|归档时触发推送)。若选择【自动】,还需要填写以下内容:
- 任务开始时间:选择任务开始执行的时间,必填项
- 任务结束时间:选择任务结束执行的时间
- 数据开始时间:用于确定推送数据范围,数据的开始时间,必填项
- 单次推送限制:次数,必填项
- 实时推送:自动推送任务结束时间之后是否开启实时推送失败
- 重试策略:失败后的重试策略配置,必填项
- 重试等待(秒):推送失败后重新尝试推送的时间间隔
- 步长时间(分):用于把时间轴切分成多窗口分段处理,值越小越接近实时推送,值越小在相同数据下完成全部推送可能耗时更多(因为可能会增加调度次数)
行列权限:列权限必须要配置(个别订阅者可能要排除敏感数据,例如员工表薪酬字段等),字段别名是可选配置,影响数据报文字段数据对应
PROPERTY_KEY(e.g. 字段city别名设置为location,报文变化{"city": "shanghai", ...} => {"location": "shanghai", ...});行权限属于可选配置,按需配置数据过滤器(例如下游系统只需要上海地区的数据推送,行权限配置:city=shanghai)。
通知:配置启用通知邮箱等(可选)
切换到
通知标签页进行配置,前提是订阅者已经配置了相关推送方式。

全部配置完毕后,点击窗口右下角【提交】,保存订阅配置。
# 推送方式
目前支持配置的推送方式有三种:自动/手动/实时。
# 手动推送
人工选择浏览到的业务数据,选择目标订阅配置即可手动触发推送。推动推送所使用的行权限为用户的行权限,非订阅配置上的行权限。
# 自动推送
自动推送方式是基于时间轴的实现的(数据是分布在一条时间轴上的,有先后顺序),从配置的数据开始时间到现在进行时间窗口切分(订阅配置那里设置的步长时间就是这个窗口的大小,单位分钟),从前往后串行处理每个窗口内的数据发送(每处理完成一个窗口内的数据就把时间游标向后移动一个窗口时间长度),对于实时新增发布或更新发布并落在时间窗口之外的数据,1)落在之后的数据会被推送,落在之前的数据不会被推送。自动推送不是实时的,有延迟,一般在无堆积情况下最多延迟一个时间窗口多一点时间。自动推送模式对于单个任务来说,在逻辑上是单线程的(共享线程池,像CPU一样并不是把一个CORE核心分配给一个程序,而是从逻辑上是单线程)。此外步长别设置的太小,太小在某些情况下会导致调度次数增加,从而增加推送数据总体耗时。
# 实时推送
实时模式仅支持通过主数据API维护发布的数据(包括通过页面上发布生效数据的方式),否则需要额外的程序做补偿工作 -- 把需要推送的数据写入MDM_PUSH_TASK表中(如外部DWS程序作业直接写入主数据业务库),对于单个订阅任务来说实时推送是支持并发推送的——推送数据线程池在富裕的情况下会自动开启并发推送模式,在不富裕的情况下会自动取消并发推送模式(可以有效保障公平性,不论各个任务的待推送数据量多少,都能得到调度的机会;打印室有N台共享打印机,10人去打印资料(即10个任务数),有的张数少有的多(单个任务的业务量),打印机不足情况下,可以每人每次打印1张轮换着来,这样可以保障公平性--短作业不会被长作业长时间耽搁;打印机充足的情况下,如只有2个人打资料但有10台打印机,那每个人可以是有5台一起打印,提升资源利用率节约打印时间)。因此在某些情况下,实时推送业务数据的总体耗时可能要比自动推送要少。
# HTTP订阅者API开发与调试
订阅者API(数据接收端)辅助开发调试办法:浏览模型业务数据,选择N条数据 -> 操作按钮区“推送” -> 选择订阅系统(先配置好订阅系统和模型订阅,并且启动订阅服务API)-> “提交”,订阅者系统即可接收到推送内容。也可以参考数据推送订阅配置行列权限标签页右上角查看报文辅助开发。