写点什么

骑士卡:基于 Kafka 搭建消息中心,上亿消息推送轻松完成

  • 2021-02-23
  • 本文字数:1717 字

    阅读完需:约 6 分钟

骑士卡:基于Kafka搭建消息中心,上亿消息推送轻松完成

全球购骑士卡是国内领先的会员制特权电商平台,汇聚国内外“吃喝玩乐买”超 300 项会员专属优惠特权。全球购骑士卡基于移动互联生活方式,打通线上、线下消费场景,汇集时下热门、高频的商品及服务优惠。会员可享全国超万家大型商超购物 8 折起、全国加油 7 折起、热门电商平台专属 4 折起、大牌美食餐饮 5 折起等,满足用户吃、喝、玩、乐、买各场景的消费需求。截至 2020 年,全球购骑士卡已累计服务用户超 5000 万名。2020 年 4 月,全球购骑士卡完成 A 轮数千万美元融资;同年 5 月,全球购骑士卡完成数千万美元 A+轮融资。

新的需求

全球购骑士特权业务的飞速发展,当前每天平均发送的短信量达到了约 200 万+,需要 PUSH 的推送量达到了约 1 亿+,通过微信推送量达到了 5000 万+。因此,如何构造建设一个高性能、高稳定性、可扩展的消息中心迫在眉睫。


消息中心技术选型主要参考以下因素:

  • 削峰填谷能力:消息中心需要处理各条业务线的通知和营销任务的信息,而这些信息根据转化的需要,很大可能会集中化地在短期内进行推送,所以需要系统有削峰填谷的能力。

  • 接口通用能力:消息中心的接入方不希望被绑定在某个接口上,不需要对该接口进行维护可以供多个业务方进行发送处理。

  • 灵活类型划分:消息中心需要支持灵活的业务分类配置, 因为我们消息中心这里的业务配置非常多,大类就有短信、PUSH、微信推送,短信里又分通知、验证码和营销类别,而 PUSH 又区分 APNS、渠道服务商等第三方通道,以及 Android 厂商通道。

  • 稳定处理能力:所依赖的技术产品运行稳定,因为处于消息中心的通道位置,不能忍受产品本身的稳定性波动带来的业务损失。

  • 集群扩展能力:所依赖的技术产品没有扩容瓶颈,对于我们的业务继续发展有扩展的足够空间,可以快速进行业务扩容诉求。

新的解法

使用消息中间件来做消息中心的通道是显现而见的目标选项,综合对比多种消息的产品,由于骑士卡并没有需要顺序消息、事务消息等高阶功能,而是重点关注以下这些功能点:


  • 队列的扩展能力:在这方面,RabbitMQ 的单 Queue 的处理能力不容易扩展;而 RocketMQ 的 Topic 是有 ConsumerQueue 的参数来进行配置扩容的,在 Broker 的配置文件里指定,但是对 Broker 层面生效的;而 Kafka 的 Partition 可以每个 Topic 拥有不同的取值。这样在分类灵活性方面,Kafka 是最优的选择,RocketMQ 次之。

  • 通用的接入方式:本质上 RabbitMQ、RocketMQ、Kafka 都是私有协议的方式接入,比较云上商业版本的接入方式,对于 Kafka 支持最纯粹友好,可以使用官方的接入方式进行接入。

  • 消息的吞吐能力:在各类消息的对比测试中, 因为 Kafka 本身的处理机制原因,都是由客户端进行拉消息,整个 Broker 的处理方式比别的消息中间件要简洁,而 Kafka 的读写能力/吞吐量都是最大的。

  • 集群稳定性能力:云上的消息产品都很友好地保持业务的连续性来进行升配操作,并且对于商业版本的 Kafka 做了 Broker 上的优化,存储上的优化,运维上的优化后,不需要担心自建集群出现的不稳定问题,完全满足骑士卡的需求。

业务价值

使用 Kafka 构建消息中心,对骑士卡来说最重要的是保障了业务的稳健。利用 Kafka 的吞吐能力,自定义的 partition 设定(扩展),通过弹性扩展消费者实例的方式,自消息中心上线以来,一直运行平稳,没有出现过影响业务的故障。


同时,系统运维起来十分简单。利用云上的 Kafka 能力,避免了测试期自建集群莫名其妙的 Broker 故障,不需要投入额外的资源来保障消息中间件正常工作。并且可以通过白屏化的升级操作来匹配骑士卡的业务发展,也可以按需要来快速调整实例数。


值得一提的是,使用云产品 Kafka,无论在生产环境还是本地开发测试环境,都可以直接使用云产品,最大限度减少通用产品依赖,让团队专注于业务的开拓实现,极大的提升了团队工作效率。


“在全球购骑士卡消息中心的搭建过程中,我们使用阿里云的 Kafka 完成了消息中心高吞吐量,稳定以及可扩展的目标。目前,消息中心作为业务运营推广的基石,发挥着重要作用,对于新业务的接入,通过消息队列的配置修改即可完成,对现有业务可以做到无侵入,尽可能的减少了故障发生的可能。”


——骑士卡 CTO


本文转载自:阿里巴巴中间件(ID:Aliware_2018)

原文链接:骑士卡:基于Kafka搭建消息中心,上亿消息推送轻松完成

2021-02-23 13:004000

评论 2 条评论

发布
用户头像
开什么玩笑,这种文章infoq也发?技术内容在哪?
2021-02-24 17:21
回复
用户头像
这是阿里云的广告不
2021-02-24 14:11
回复
没有更多了
发现更多内容

甲方日常 49

句子

工作 随笔杂谈 日常

[Pulsar 社区周报] 2020-10-31 ~ 2020-11-06

Apache Pulsar

大数据 开源

三千字轻松入门TensorFlow 2

计算机与AI

tensorflow 学习

Serverless 是一种思想状态

donghui

Serverless

秋风到,ModelArts“ AI市场算法Fast-SCNN指南”秋膘贴起来

华为云开发者联盟

AI 算法 开发 OBS modelarts

曾陷“数据风暴”危机的赛默飞世尔如何化险为夷的?

华为云开发者联盟

数据库 大数据 云服务 华为云 RDS

我就是增发、健身、养猫、社交通通拥有的锦鲤本鲤

脑极体

LAXCUS 大数据集群操作系统:一个分布式分时共享 E 级系统软件(七)

陈泽云

人工智能 大数据 算法

利用下班时间,我两星期完成了redis入门与进阶

小松漫步

数据库 redis

面经手册 · 第17篇《码农会锁,ReentrantLock之AQS原理分析和实践使用》

小傅哥

Java AQS CAS unsafe CLH

mongodb 源码实现系列 - 网络传输层模块实现四

杨亚洲腾讯科技

MySQL 数据库 mongodb 高性能 分布式数据库mongodb

LAXCUS 大数据集群操作系统:一个分布式分时共享 E 级系统软件(六)

陈泽云

人工智能 大数据 算法

高交会第一天,高新技术成焦点

13530558032

第六周课后练习

balsamspear

极客大学架构师训练营

基于Fabric的性能测试与调优实践

华为云开发者联盟

区块链 算法 测试 fabric 华为云

WE大会上,科学家们是怎样治愈“小破球”的?

脑极体

极客大学 - 架构师训练营 第八周

9527

第六周总结

balsamspear

极客大学架构师训练营

链表交集问题与DataNode宕机HDFS处理时序

garlic

极客大学架构师训练营

架构师Week4总结

lggl

作业

2020双11:看阿里背后的黑科技!

人工智能 云计算 大数据 运维 黑科技

氪信团队再夺冠!易观数科第四届OLAP算法大赛前三甲诞生!

易观大数据

数据库 算法 OLAP

什么?还不懂c++vector的用法,你凭什么勇气来的!

良知犹存

c++

面试,到底在考察什么?

程序员架构进阶

面试 方法论

再拔头筹,FusionInsight为华为云大数据打造硬实力

华为云开发者联盟

大数据 数据仓库 数据湖 FusionInsight 华为云

护航11.11,如何筑牢安全防御系统?

京东科技开发者

云计算 云安全 DDoS

Pulsar Summit Asia 2020 | 场景案例论坛(上):多行业,多场景

Apache Pulsar

大数据 开源 Apache Pulsar

架构师Week4作业

lggl

作业

Oracle、NoSQL和NewSQL 数据库技术对比

VoltDB

数据库 大数据 数据分析 物联网

【Mycat】作为Mycat核心开发者,怎能不来一波Mycat系列文章?

冰河

分布式事务 分布式数据库 系统架构 分布式存储 mycat

mPaaS 客户端问题排查之漫长的 3s 等待之谜

阿里云金融线TAM SRE专家服务团队

mPaaS

骑士卡:基于Kafka搭建消息中心,上亿消息推送轻松完成_大数据_阿里巴巴中间件_InfoQ精选文章