前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如果你来设计运营商的流量计费系统

如果你来设计运营商的流量计费系统

作者头像
明月AI
发布2022-11-07 13:07:37
1.5K0
发布2022-11-07 13:07:37
举报
文章被收录于专栏:野生AI架构师

周末看了一天的直播课程,流量用超了,套餐外的流量又很贵,把账户余额也直接扣到负十几块,停机了。这期间,看到这系统有几个问题:

1. 套餐内流量用完没有预警提示;

2. 流量用超了很多之后,才扣钱,导致用户余额不足而直接停机;

3. 直接停机之后没法联网,如果没有其他网络就没法充值;

4. 运营商的账单经常查询不到(直到写这个文章的时候,电信的账单依然查询不到,至少有三四天了);

5. ……

这个系统确实不容易,但是在运营商日进斗金的营收下,这么多年了系统还这么难用,在运营商里面搞技术的好意思说自己是搞技术的吗?(或者他们这些系统都是外包给别人开发,技术……他们不需要。垄断赚钱多舒服,要啥技术)

吐槽归吐槽,如果系统给你来设计,你会怎么设计?

系统目标

抛开那些具体的业务逻辑,这个系统应该具备以下目标:

1. 预警要及时:套餐内流量或余额用到一定阈值应该有预警;

2. 扣费要及时:避免余额直接都负数,造成停机,导致用户充值不了;

3. 查询要及时:历史账单和当月消费明细应该满足近实时的查询。

解决这三个“及时”,我上周所遇到的问题,也就解决的。

运营商的计费扣费特点

运营商的计费是有特点的:

1. 用户量巨大,手机人手一台;

2. 用户几乎都是实时在线,关机的情况很少,每时每刻都可能产生消费;

3. 用户几乎都是实时在线,但是大多数用户的大部分时间几乎都是静止的(不会产生扣费,流量可能只是极少的消耗)

扣费和流量系统架构设计

以下仅为自己的想法,运营商实际的系统是怎么样的不清楚,架构应该会更加复杂。不过从他们系统呈现出的问题而言,他们系统在架构上可能就是有问题的。看那些互联网大厂,他们也是高并发大流量系统,但是他们却搞出来了很多能造福整个行业的基础基础(数据库操作系统大数据等,为开源贡献不少),但是运营商在这技术进步方面几乎毫无建树,白白浪费了这么好的场景。

以流量计费为例:

对于用户来说,是直接访问了某个目标服务,实际上是先经过了运营商的基站,才到目标服务的,运营商也是基于此收“过路费”的。

用户访问到达基站的时候,基站就得判断是否应该放行。而这是否放行的依据应该是来自缓存(肯定不可能在这里查数据库),因此这个状态的更新是否及时就很关键,如果更新延迟很多,那就可能导致账户余额扣成负数。

每隔一段时间(例如每分钟)基站应该就会上报用户在这个时间段消耗了多少流量(基站应该是可以隔一段时间上报一次的),这个数据应该会推送到区域的流量MQ服务器里,这个MQ服务器应该是区域化的,例如广州可能有3kw的用户量可以形成一个区域,广州所有的基站数据都上报到区域的服务器上,因为基站每分钟(假设)上报一次,那么它的并发量平均就是3kw/60 = 50万QPS(实际上数据可能是不平均的,乘以2吧,100万QPS),这对于MQ来说并不多。

100万QPS虽然不多,但是如果100万的计费扣费那计费服务器的压力也还是不小的(因为计费操作通常是耗时耗资源的事务性操作)。不过这还是可以进一步优化的,因为这100万的QPS大部分的流量变化其实是很小的,完全可以进一步进行汇总,达到一定量才进行计费。因此,可以增加一个累积服务,就是达到一定量之后再进行一次计费,这平均降低到原来的1/10应该没什么问题,不过要注意,这可能会有明显的波峰波谷。

累积服务合并计费请求之后,对需要计费的请求再统一发送到计费MQ中。接下来就计费服务,这里完成计费扣费事务。在这里需要判断是否需要告警,如果满足告警的条件,就将告警信息推送到告警MQ里,由告警服务推送到用户的短信或者微信中。在计费服务中,还应该计算当前用户是否还可以进行请求,并把状态推送到缓存中,由基站使用。

为了能实现用户能够比较实时的查看账单信息,扣费记录还应该被推送到MPP数据库中(这里应该也是先推送到MQ,再从MQ消费到MPP)。

备用流量

为了避免扣费到负数而导致用户停机,在产品上用户应该可以设置一个备用流量,例如在用户停机之前可以设置50M的备用流量,在断网之后,用户可以启用该流量来进行充值等。不至于停机之后,出现完全没法操作这种非常不好的体验问题(充值需要先有流量,而需要有流量就得先充值)。(这个实现应该不难,成本也不高,只是不知道运营商的产品经理在想什么)

---------------------------

20220926地铁上

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

本文分享自 野生AI架构师 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档