文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

严选消息中心管理平台建设实践

2024-12-13 15:38

关注

1. 引言​​

消息中心作为电商业务场景必不可少的核心组件,自严选上线以来,就开始了建设和演进迭代之路。截止目前,消息中心已接入200+服务,1500+消息,覆盖基础技术、供应链、分销客售、主站、交易订单、数据算法等严选所有业务场景。

本文对于消息中心的技术架构演进不做详细叙述,重点介绍面向业务使用方的消息中心管理平台建设实践经验。

2. 平台建设背景​

2.1 痛点问题

通过广泛沟通收集需求,在消息中心研发运维过程中,经常会碰到如下痛点问题:

2.2 价值

定位和处理上面这些问题,通常会花费较长时间,极大影响研发效率,更严重的还会影响线上业务。因此,亟需一个面向业务开发的消息中心管理平台,提高研发效能:

2.3 目标

面向业务使用方:为了提升各位业务开发同学对各自负责系统的消息收发治理和问题排查定位的效率,建设严选消息中心管理平台,通过整合串联不同系统间的消息链路,统一并标准化定义消息链路的关键节点,基于元数据进行统计分析从而配置报警监控,最终达到整个严选技术体系降本增效的目的。同时,通过自动化工单闭环消息发布、下线、消息订阅、取消订阅完整生命周期管理,入驻严选DevOps管理平台天枢,将消息中心融入整个DevOps研发体系。

3. 平台建设方案​

3.1 整体思路

核心思路就是通过提升消息中心的可观测性,通过消息中心管理平台给用户提供可视化配置管理能力。一个好的可观测系统,最后要做到的形态就是实现Metrics、Tracing、Logging的融合:

在严选消息中心场景,在尽量复用现有组件能力的原则下,获取这三者数据的具体执行路径如下:

3.2 概念定义

3.2.1 消息链路节点定义

消息中心以HTTP Proxy的模式对外提供服务,业务方不感知底层消息中间件,提供HTTP异步方式的发布订阅功能。由如下三部分构成了消息中心:

完整的消息链路如下图所示:

节点定义如下:

节点编码

节点描述

message_received_success

生产者代理成功接收到消息

message_received_failed

生产者代理接收到消息失败,一般是数据非法之类的异常

mq_received_success

消息中间件写入消息成功

mq_received_failed

消息中间件写入消息失败

polled

消费者代理从消息中间件中拉取消息成功

consumed

消费者代理推送消息到订阅方成功

consume_failed

消费者代理推送消息到订阅方失败

failover_retry

消费者代理失败重试场景从消息中间件拉取消息成功

retry_failed

消费者代理消息失败重试场景推送消息到订阅方再次失败

meet_max_retry_times

消费者代理消息失败重试场景达到最大失败次数,此后不会再重推

over_duration_time

消费者代理消息失败重试场景超过重试时长,此后不会再重推

3.2.2 用户视角定义

不同的用户视角关注的消息链路是不同的,用户只需聚焦于自己的对应的消息链路即可:

3.3 数据流分层架构

3.3.1 数据源

数据源主要是基于如下三部分日志,可串联整个消息链路:

3.3.2 数据采集层

复用日志平台现有功能,在日志平台配置业务日志采集任务,此处不详述。

3.3.3 数据分析层

按需在数仓平台配置T+1的离线分析任务,在严选实时计算平台配置运行自定义flink任务,聚合时间窗口可根据实际情况配置,主要指标如下:

3.3.4 数据存储层

3.3.5 数据展示层

4. 平台功能​

4.1 消息链路查询

​支持如下两个维度的消息链路查询:

提供拓扑和日志两种视图模式,供用户进行切换展示。​

拓扑视图下可点击查看消息内容、消费失败原因、发送耗时、消费耗时、端到端延迟。默认展示消息的所有消费者,用户可点击筛选只展示自己感兴趣的消费者消费链路。

4.2 数据统计分析

4.2.1 业务方使用视角

可筛选查看topic 【指定时间范围内 + 指定时间间隔】的聚合指标数据,相关统计图具体如下:

4.2.2 系统管理员视角

系统管理员不关注具体某个topic,而是关注消息中心集群的整体运行情况,相关统计图表具体如下:

4.3 元数据管理

支持从消息主题、发布方、订阅方三个维度分页查询消息元数据信息,主要包括消息主题、发布方CMDB服务编码、订阅方CMDB服务编码、订阅url等相关配置,具体如下:

可点击消息详情,查看消息元数据、消息格式、消息示例信息,具体如下:

可点击消息拓扑查看图形化的发布订阅关系,具体如下:

可查看消息失败重试策略,工单申请调整重试策略,具体如下:

可查看报警配置,消息订阅方所属服务技术负责人可调整告警配置,主要分为两种类型的告警:

报警的指标数据是通过flink实时任务聚合采集存入Ntsdb,告警通知对接严选告警平台,告警接收人员即为线上服务所对应的线上监控人员角色。

4.4 自助运维

当消息中心上下游系统出现异常时,只要确保消息已成功投递到消息中心,消息中心可提供自助补推功能,来辅助业务快速恢复。支持根据消息id或者消息状态筛选查询指定时间范围内的消息,来决定是给消息的所有订阅者推送还是给某个订阅者推送。

消息推送对操作人进行严格的数据权限隔离:

消息补推属于高危操作,所有操作都会进行记录进行事后审计跟踪,并可查看每条推送记录的具体详情:

4.5 工单自动化审批

通过自动化工单闭环消息发布、下线、消息订阅、取消订阅完整生命周期管理,入驻严选DevOps管理平台天枢,有机的将消息中心融入整个DevOps研发体系。

同时将消息工单作为一个变更事件,基于天枢平台自动将测试环境的工单同步到线上。同时作为需求发布上线的风险变更管控卡点项,有效规避漏申请消息发布/订阅的情况而导致的业务异常。

5. 总结与展望​

5.1 总结

消息中心管理平台自上线以来,受到了不少业务方的好评,也广泛收集建议进行了一些功能迭代优化,初步达成了预期目标:

5.2 展望

消息中心管理平台下一步的重点方向是数字化建设,借鉴当前比较流行的FinOps执行路径:成本展示 -> 成本分析 -> 成本优化:

当然,作为一个消息中心管理平台,对于底层消息中间件的运维、部署、监控也是必不可少的。当前在严选的落地实践是,广泛调研并引入开源组件EFAK、rocketmq-dashboard,二次开发接入严选监控告警体系,再结合严选OF监控,低成本、高效的解决了消息中间件集群及机器维度的运维监控管理问题。至于后续是否需要将这部分功能统一集成到消息中心管理平台,需要结合实际业务诉求和成本收益再进行决策。

6. 附录

来源:严选技术产品团队内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯