负责结果数据输出分发,主要目的是数据调配和触达发送策略 。
数据管理
保存事件元数据的配置 。
数据仓库
离线数据的储存,作用于流程中各种数据处理流程 。
三、关键组件和流程设计3.1 事件实时接入的扩展性设计由于公司内部业务技术栈不尽相同,需要支持多种业务事件数据接入方式,比如通用HTTP接口,Java技术栈的DUBBO接口、和MQ消息队列的方式,为了系统内部可以进行统一管理,最后转成MQ的方式进行统一分发 。
3.1.1 接入队列设计由于事件数据源的不同 , 需要对宿主业务进行MQ队列流量管控隔离 。不同业务系统事件接入需求有以下不同的设计方案:
方案一:为每个接入的事件创建一条新队列,不同事件使用不同队列 。
文章插图
- 优点:最小粒度的流量控制,不同事件接入之间可以做到隔离,互不影响 。
- 缺点:每次接入新事件都需要申请创建队列,随着事件接入数据增加,队列维护成本比较高 。
文章插图
- 优点:按接入方来进行流量控制,接入方之间进行隔离,同一接入方只需在首次接入使用时创建队列,后续接入新事件无需创建 。
- 缺点: 不同接入方接入时需要创建队列,同一接入方不隔离,有相互影响的风险 。
- 优点:业务方使用友好 , 后续接入无需变更 , 耦合度?。奖闱谢籑Q中间件 。
- 缺点:最大粒度的流量控制,无法做到隔离 , 风险较高,需要经常进行队列扩容 。
- 优点:按事件的维度进行流量控制 。
- 缺点:对接入方使用不够友好,不同业务接入时需要创建队列 。
文章插图
结论:按照当前项目优先级综合评估来看,业务隔离性>可伸缩性>可维护性>接入方友好性 。
方案二比较适合。(不同的项目可以根据自己的实际情况按优先级进行合适的选型)
3.1.2 动态消息监听背景:当需要做好业务间风险隔离时,就必须按业务或者事件的维度进行队列拆分 。此时若进行新接入事件就可能需要重新创建新的队列 。
初期方案:采用公司中间件vivo-rmq, 当接入方需要新增队列时 , 需要修改代码新增队列监听,重新发版,这样做的问题是重新发版成本较高,按照项目流程管理进行效率低 。
优化方案一: 修改启动加载类加载指定目录下的配置文件,新增队列时修改配置文件上传 。
- 优点:无需发版 。
- 【实时营销引擎在vivo营销自动化中的实践 | 引擎篇04】缺点:仍需要重启服务器 , 同时需要维护配置文件目录等信息 。
- 优点:无需发版和重启 。
- 缺点:定时任务实时性稍差,必须确保队列监听成功后在通知业务方接入 。
推荐阅读
- day09-1存储引擎
- 小米电视如何看实时电视(小米电视怎么能当正常电视看)
- 07 ClickHouseClickHouse数据库引擎解析
- 引擎之旅 Chapter.4 日志系统
- 如何管理营销群 如何营销付费群
- 什么是真人秀表演 什么是真人秀
- 欧式别墅外观效果图 欧式别墅怎么营销
- 图片识别在线百度识图入口 图片识别在线百度识图
- 济源市知信行营销策划有限公司_工商信用信息_经营范围期限状态_法人_地址_注册资本_怎么样
- 美铜期货行情实时行情今日行情