全球购骑士卡是国内领先的会员制特权电商平台,汇聚国内外“吃喝玩乐买”超 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

特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:

长按订阅更多精彩▼如有收获,点个在看,诚挚感谢

http://www.taodudu.cc/news/show-147727.html

相关文章:

  • 一次I/O问题引发的P0重大故障[改版重推]
  • 美团某程序员爆料:绩效背c的都要签pip!网友:pip就是变相劝退!
  • 如何避免让微服务测试成为研发团队最大的瓶颈?
  • 获赞23w+在B站一夜爆火,大写的牛B!程序员进阶网盘资源(有链接和提取码)...
  • 闲鱼如何一招保证推荐流稳如泰山
  • 来给你代码加上美颜吧!
  • 比尔盖茨聘请投资高手,26年亏掉4300亿美金!
  • 选择大于努力?某程序员吐槽:自己毕业去了百度,技术不如自己的室友去了快手,如今股票1500万!...
  • 35岁老码农:老板,你看我还有机会吗?
  • 微服务“大门”如何选择?
  • 小白搞懂了GC全过程,全靠阿里专家12张图
  • 阿里面试这样问:redis 为什么把简单的字符串设计成 SDS?
  • 除了腾讯阿里,中国最牛的风投机构,其实是合肥市政府!
  • 一线互联网Top20高频面试题曝光!
  • 三万字,Spark学习笔记
  • 微软某程序员吐槽:如果毕业去字节,现在总包150万!如今一年才50万,看见字节的人都抬不起头!...
  • 某程序员求助:喜欢上漂亮的产品经理却不敢追,追不上太尴尬,公司也不允许办公室恋情!网友:别怂!...
  • 数字化转型案例:源自阿里,中台设计流程及方法
  • 程序员如何打破35岁魔咒
  • 鱼和熊掌兼得:同时使用 JPA 和 Mybatis
  • 浅谈程序员的“内卷化”
  • 面试中多说这么一句话,薪水直接涨5k
  • 数据仓库的前世今生
  • 聊聊算法在面试中的地位
  • 聊聊 TCP 长连接和心跳那些事
  • 某程序员吐槽:女朋友老板给她包了1314元开工红包,正常吗?网友:这是绿包!...
  • 一文探讨堆外内存的监控与回收
  • 工资8000以下的程序员注意了:《零coding数据大屏实战宝典.pdf》
  • 定时器有几种实现方式?
  • 爱奇艺员工拿到北京户口后辞职,被判赔偿公司十万!

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

  1. 在自己的服务器上搭建git仓库服务器(本地推送到远程仓库、远程仓库推送到本地)

    文章目录 Git服务器 一.安装Git 二.配置Git 1.创建Git用户 2.仓库初始化 三.使用仓库 1.本地推送到远程仓库 2.远程仓库推送到本地 总结 Git服务器 一般,我们编写项目,都会保 ...

  2. 基于Tomcat7、Java、WebSocket的服务器推送聊天室

    2019独角兽企业重金招聘Python工程师标准>>> 基于Tomcat7.Java.WebSocket的服务器推送聊天室 转载于:https://my.oschina.net/u/ ...

  3. Android上的Mosquitto推送

    本文所用到的所有材料都在:http://pan.baidu.com/share/link?shareid=663006743&uk=1964506139 首先讲Android上的Mosquit ...

  4. iOS 推送,删除指定推送消息或者撤回某条推送

    iOS 推送,删除指定推送消息 远程推送经常会出现收到重复推送的问题,或者想删除某条推送消息的问题,本文将详细说明 静默推送 在 iOS10 之后 Apple 新增了静默推送的功能,使 App 可以在 ...

  5. 如何用计算机放出音乐,怎么让手机上正在播放的音乐在电脑上播放(直接推送方法)?...

    怎么让手机上正在播放的音乐在电脑上播放(直接推送方法)?手机电量吃紧,即将告罄怎么办?手边有电脑的话,可以继续在电脑上继续听歌哦!这是如何做到的呢?前提是手机上安装有音乐播放软件(推荐酷狗和QQ音乐) ...

  6. Kafka详解(上)——消息系统分类、Kafka安装、两种启动、基本概念、两种架构、核心配置文件

    1 消息和消息系统 ​ 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象. 1-1 消息系统是什么 ​ 消息系统负责将数据从一个应用 ...

  7. SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送)

    场景 Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  8. 基于 WEB 的实时事件通知方式 服务器推送

    下面这些可以实现基于web的实时事件通知的方法.在他们的实验性研究中在一个利用COMET推送方式实现(Dojo的Cometd库,dwr的反向Ajax)的AJAX应用和一个纯拉取方式的应用之间,对数据一 ...

  9. 为你的项目搭建sentry并且通过企微推送

    介绍 sentry是一个开源的监控系统,能支持服务端与客户端的监控,还有个强大的后台错误分析.报警平台. 本篇文章主要介绍 搭建sentry.使用sentry.接入企业微信推送 - 更多学习案例尽在我 ...

最新文章

  1. python画板颜色_教你在python中用不同的方式画不同颜色的画布
  2. 创建字符设备的三种方法
  3. Xcode10 闪退问题
  4. 【PC工具】离线地图图片地图瓦片下载神器map-download地图下载器
  5. 合肥工业大学计算机与信息学院学生会宗旨,计算机与信息学院举办第一期“AIE计划”实验室招新宣讲会...
  6. go 原子操作 atomic的使用
  7. opencv-python单目视觉标定,简单易用。
  8. python在线作业_南开大学20春学期《Python编程基础》在线作业参考答案
  9. 荣耀es升级鸿蒙,华为手机明年全部升级鸿蒙系统 所有自研设备换OS
  10. automake连载--Linux下使用autoconfig automake进阶
  11. Java工具-----native2ascii
  12. Kubernetes 弃用 Docker刷爆了网络,我们公司也慌了!
  13. 【VRP】基于matlab遗传算法求解单中心的车辆路径规划问题【含Matlab源码 059期】
  14. MPEG4写为avi文件
  15. TeamViewer安装——好用的远程办公软件
  16. 计算机硬件系统主机主要包括,组成计算机硬件系统的基本部分是什么?
  17. autorun.vbs病毒的清除办法
  18. 数字图像处理11:阈值分割(基本全局阈值处理,Otsu 的最佳全局阈值,图像平滑改善全局阈值处理,图像分块的可变阈值)
  19. GPON技术学习(一)--------GPON系统整体概况
  20. 【Verilog智能药盒的设计与实现】

热门文章

  1. 2021年去中心化金融平台22亿美元加密货币被盗
  2. poj1064(二分查找)
  3. 华南理工大学计算机操作系统课程设计大作业银行家死锁避免算法模拟,2016春操作系统大作业银行家死锁避免算法模拟.doc...
  4. django mysql orm教程_带你了解Django ORM操作(基础篇)
  5. python将图像转换为8位单通道_Python OpenCV读取16位单通道图像并转换为8位灰度图显示...
  6. Centos7上安装oracle11g/12c的安装教程推荐及注意事项
  7. Google VC投资SDN初创公司Plexxi
  8. 图解HTTPS建立过程
  9. AMD 再次抨击基准测试工具 SYSMark 偏袒英特尔
  10. struts2标签详解