腾讯会议号设计的几种猜测

可以说疫情给我们打工人带来最大的改变,就是居家办公,而这其中,对工作模式冲击最大的就算是在线会议了,以前都是会议室,面对面交流,现在都是对着一个屏幕,如果有视频的会议还好,能看见对方,还像一个会议,但大多是没视频的会议,就对着个屏幕,用一位朋友说的,这种会的主讲人,就像一位"过了气的主播",跟大家扯东扯西,没眼神交流,没任何反馈,确实有些尬。

既然在线会议如此之火,出现了很多老的、新的在线会议的软件,这其中最常用的,可能就是腾讯会议了,简单、实用、稳定,是很多人选择他的原因。

大家都知道,腾讯会议上开会,无论是加入会议,还是创建一个快速会议,又或者是预定一个会议,都是用的一个会议号进行标识的,

d576c8a0c6a9aeb77cdf967223dd4fb6.png

如果细心的朋友会注意到,这个会议号是一个9位的数字,假设每位可以是0-9一共10个数字,10的9次方,是1000000000,10亿。换句话说,他应该同时支持10亿个在线会议。

不知道你是不是尝试过,例如定了一个09:00-09:30的会议,但实际上09:00之前,09:30之后,都可以登录,而且尝试过可以登录一个月(这个随机测的,未必非常准确)之前的会议号,但是更久的,会议号就失效了。

因此,按照刚才计算的,虽然支持10亿个会议号,但这些号是否会出现重复的,或者因为用满了这些号,禁止创建新的会议了?

从产品的功能角度来讲,这个应该是不太可能的。但是如何实现的,我没找到资料,不过可以做一些猜测,其实就和系统设计相关了。

(1) 每个会议号,应该是随机创建的,因为是无序的,所以不太可能只是用像数据库的sequence或者分布式自增ID的方案,很可能是一种混合的号码生成器方案,为了安全起见,还需要随机的。像避免重复的功能可能会用到序列、snowflake等分布式自增ID的特性,但是范围确定(10亿),所以其中可能有判重的设计,例如通过缓存,key/value来判重。

(2) 10亿是个确定的值,这就要求每个产生的会议号,需要存在有效期,一种简单粗暴的方式就是给定一个具体的时间段,例如从创建开始,一个月内有效。另外一种"优雅"的方案,可能就是像Oracle等关系型数据库采用的LRU链表设计,最少最近使用的队列,根据当前会议号的使用情况,动态淘汰最少使用的会议号,这给用户的体验就会很好,但相对来说,在设计和实现上,就会更加复杂一些。

腾讯会议的稳定性、功能上的实用性、操作上的简易性,很出众,其实这些都是同类软件的基础,都是用户最需要的功能,相比很多"花里胡哨"的同类软件,在产品的设计层面还是有很多值得借鉴的地方。

近期更新的文章:

充电宝的玄机

新赛季的中超和国安,荆棘中前行

Oracle的CTAS能不能将约束等属性带到新表?

故障树分析法(FTA)

"红警"游戏开源代码带给我们的震撼

文章分类和索引:

公众号1000篇文章分类和索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值