前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >京东京麦商家开放平台的消息推送架构演进之路

京东京麦商家开放平台的消息推送架构演进之路

作者头像
用户1263954
发布2018-06-22 12:32:14
6620
发布2018-06-22 12:32:14
举报
文章被收录于专栏:IT技术精选文摘IT技术精选文摘

1、前言

京麦实时消息推送是京东的京麦商家开放平台的核心组成部分。从消息源到消息中心再到触达用户,以及最终根据消息协议呼起操作页面,京麦实时消息推送是一个完整且健康的生态闭环。下面我会详细的介绍下京麦实时消息推送是如何在演变中不断完善的。

京麦消息框架示意图:

我将从京麦商家开放平台的消息接入、MC系统搭建、消息配置、消息触达、消息监控五个方面来阐述和分享京麦实时消息推送架构在2017年的成长。

2、消息推送的接入

原有的消息推送接入存在的弊端主要有以下两点:

我们后期针对新一代消息推送做的改善如下:

3、MC(京麦消息推送中心)系统的搭建

▲ 原京麦消息推送系统的接入逻辑图 如上图所示,原先京麦消息推送的主要痛点如下:

  • 1)接入方式不统一;
  • 2)不稳定、大促被降级;
  • 3)消息处理逻辑复杂,接入新的消息源困难;
  • 4)没有完善的消息追踪,消息统计。

▲ 新京麦消息推送系统的接入逻辑图 基于上述原因,重新打造了一个稳定、专一的消息处理中心——MC系统(如上图所示):

4、推送消息组装的统一配置化

▲ 新京麦消息推送系统的消息组装处理逻辑图 消息过滤、消息组装、消息存储、消息推送是京麦消息中心的四大核心。消息组装是根据不同消息的不同配置来进行的,而这些配置是在开发侧的config配置中心来配置的,因此产品或者运营想从Anycall新接入一种系统消息所做的工作量是极其大的。 基于这个原因,我们将所有的配置环节统一到了一个页面。配置信息的获取添加三层缓存(Guava Cache+redis+DB)来应对海量调用。统一配置页面的存在使得业务类系统消息的接入变的简单快捷。

5、消息推送的触达(向客户端扩散)逻辑

▲ 新京麦消息推送系统的消息触达逻辑图 京麦消息触达分为在线通知和离线通知:

  • 1)在线通知是通过服务端和客户端的TCP长连接来实现的;
  • 2)离线通知在最开始只有IOS的apns推送,Android系统无法很好的进行离线通知的推送一直是一大痛点。

6、完整的消息推送路径监控

▲ 新京麦消息推送系统的消息监控逻辑图 全链路消息追踪系统,整合从消息源到最终的消息推送,整个链路各个节点消息的流转状况,并且异步化存储。从上图可以看到系统中的处理方式是,分别订阅JMQ的同一个topic实现将消息日志分别存储在ES和HBase,存ES保证了我可以在消息管理后台对所有消息进行清晰透明化的追踪查询,存HBase是为了可以将数据长久的保存并且进一步的分析。 消息统计是依托于京东大数据平台来实现的。将HBase里的数据导入到京东数据集市,从而对消息数据进行各个维度的统计分析。

7、本文小结

京麦实时消息推送架松经过一年的成长,在稳定、监控、内容丰富程度上有了长足的发展。下一步的规划是完整的消息失败重试机制、提高消息送达率、消息推送产品化等。 京麦是一个年轻且充满活力的团队,京麦消息系统伴随着京麦的成长,不断的完善优化。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT技术精选文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、前言
  • 2、消息推送的接入
  • 3、MC(京麦消息推送中心)系统的搭建
  • 4、推送消息组装的统一配置化
  • 5、消息推送的触达(向客户端扩散)逻辑
  • 6、完整的消息推送路径监控
  • 7、本文小结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档