骑士卡:基于Kafka建立消息中心,轻松推送数亿条消息

全球购买骑士卡是中国领先的基于会员资格的特权电子商务平台,该平台汇集了300多个国内外会员的专有特权,以“吃饭,喝酒,娱乐和购买”。

基于移动互联网的生活方式,Global Buy Knight卡打开了在线和离线消费场景,并收集了受欢迎的和高频的商品和服务折扣。

会员在全国10,000多家大型超市购物可享受20%的折扣,全国加油可享受30%的折扣,热门电子商务平台可享受40%的折扣,大型美食和饮料等可享受50%的折扣,满足用户的需求吃,喝,玩,享受和购买。

现场的消费者需求。

截至2020年,全球购买骑士卡的用户已超过5000万。

2020年4月,“全球购买Knight Card”完成了数千万美元的融资;同年5月,全球购买Knight卡的交易完成了A +轮数千万美元的融资。

新需求全球购买骑士特权业务的迅猛发展,当前平均每日短信量已达到200万+左右,需要进行PUSH的推送量已超过1亿+,通过微信推送的量已达到5000万+。

因此,如何构建一个高性能,高稳定性,可扩展的消息中心是当务之急。

消息中心的技术选择主要取决于以下因素:削峰填谷的能力:消息中心需要处理各种业务的通知和营销任务信息,并且该信息可能会在短期内集中时间根据转换的需要而定。

为了推动,系统需要具有切峰和填谷的能力。

通用接口功能:消息中心的访问方不想绑定到某个接口,并且可以由多个业务方使用它进行发送和处理,而无需维护该接口。

灵活的类型划分:消息中心需要支持灵活的业务分类配置,因为我们的消息中心具有许多业务配置。

主要类别为SMS,PUSH,WeChat push,SMS分为通知,验证代码和营销类别,PUSH还可区分第三方渠道,例如APNS,渠道服务提供商和Android供应商渠道。

稳定的处理能力:他们依赖的技术产品稳定运行。

因为它们位于消息中心的通道位置,所以它们不能忍受由于产品本身稳定性的波动而导致的业务损失。

集群扩展能力:所依赖的技术产品没有扩展瓶颈,并且我们的业务有足够的扩展空间来继续发展,因此我们可以快速提出业务扩展需求。

新的解决方案使用消息中间件使消息中心的通道成为可见的目标选项。

全面比较多种消息产品,因为骑士卡不需要诸如顺序消息和事务消息之类的高级功能,而是着重于以下这些功能:队列扩展功能:就此而言,RabbitMQ的单个队列处理能力不容易扩展;和RocketMQ的主题具有用于配置扩展的ConsumerQueue参数,该参数在Broker配置文件中指定,但对于Broker Effective而言是该级别的;和Kafka的分区可以对每个主题具有不同的值。

就分类灵活性而言,Kafka是最佳选择,其次是RocketMQ。

通用访问方法:本质上,RabbitMQ,RocketMQ和Kafka都是私有协议访问方法。

与云上商业版本的访问方法相比,Kafka支持最纯粹,最友好,您可以使用官方访问方法进行访问。

消息吞吐能力:在各种消息的比较测试中,由于Kafka自身的处理机制,客户端会提取消息。

整个Broker的处理方法比其他消息中间件更简单,并且Kafka读写容量/吞吐量最大。

集群稳定性功能:云上的消息传递产品非常友好,可以保持业务连续性以进行升级操作,并且Kafka的商业版本已在Broker,存储以及运营和维护方面进行了优化。

无需担心自建集群的不稳定性,它完全可以满足骑士卡的需求。

商业价值使用卡夫卡建立一个消息中心,骑士卡最重要的是确保业务的稳定性。

利用Kafka的吞吐能力,自定义分区设置(扩展)和用户实例的灵活扩展,