10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

骑士卡:基于 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:003911

评论 2 条评论

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

2020年了,终于有大佬把Java程序员必学知识点总结整理出来了!

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营 -week06-总结

大刘

极客大学架构师训练营

接口工具使用对比(apipost、jmeter、postman、swagger等)

测试人生路

Jmeter Postman 接口测试

年末成功上岸腾讯T3-2,全凭这份业内跪求的Java核心笔记

小Q

Java 学习 架构 面试 程序猿

Java-技术专题-Stream流详解

码界西柚

技术实践丨PostgreSQL插件之pg_dirtyread "闪回查询"

华为云开发者联盟

数据库 后端

第2周 框架设计-作业

SuGeek

架构师训练营 - 第 6 周课后作业(1 期)

Pudding

产品资讯 | mPaaS 适配 targetSdkVersion 29

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS

十个写代码的小技巧,保你在面试过程中脱颖而出

Java架构师迁哥

Appium常用操作之「元素定位、swipe 滑屏操作」

清菡软件测试

作为打工人,如何正确的选择自动化测试工具(完全指南)

软测小生

软件测试 测试 软件自动化测试 测试工具 测试开发

训练营第二周作业

大脸猫

极客大学架构师训练营

首个通用安全技术行业标准发布适用于区块链技术架构 但监管仍待完善

CECBC

金融 安全技术

“绝影”机器狗如何利用ModelArts强化学习算法更改导航轨迹

华为云开发者联盟

人工智能 机器狗 导航

训练营第二周总结

大脸猫

极客大学架构师训练营

C 语言实现一个简单的 web 服务器

C语言与CPP编程

c c++ socket C语言 HTTP

打破内卷化,AppGallery Connect的全生命周期赋能方案

脑极体

阿里技术四面+交叉面+HR面成功拿到offer,谁说双非本科进不了大厂?

Java架构之路

Java 程序员 架构 面试 编程语言

Java-技术专题-JDK8新特性之Stream流

码界西柚

苏州高铁新城打造区块链发展聚集地

CECBC

区块链 智能合约 金融

一周信创舆情观察(10.19~10.25)

统小信uos

架构师训练营第二周作业

李日盛

架构

【Java面试官】我管你什么P7、P8?答不出这十道题你就是渣!

Java架构师迁哥

【JSRC小课堂】Web安全专题(四)SRC漏洞挖掘技术之命令执行漏洞

京东科技开发者

WEB安全

人少钱少需求多的新项目该怎么带?看到这篇我心里有底了!

华为云开发者联盟

技术 运维 后端

2020中国系统架构师大会活动回顾:ZEGO实时音视频服务架构实践

ZEGO即构

架构设计 RTC

架构训练营 - 第6周课后作业 - 学习总结

Pudding

花费6个月的时间,五面阿里java岗,最后竟然差点倒在最后HR面?

Java架构追梦

Java 学习 编程 架构 面试

阿里P8大牛2020年总结整理的心血之作:17W字操作系统、网络协议教程、面试真题(附导图+笔记)

Java架构之路

Java 程序员 架构 面试 编程语言

区块链将与人工智能、物联网、云计算技术形成互补

CECBC

人工智能 物联网

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