当前位置:网站首页>腾讯会议号设计的几种猜测
腾讯会议号设计的几种猜测
2022-06-23 22:11:00 【bisal(Chen Liu)】
可以说疫情给我们打工人带来最大的改变,就是居家办公,而这其中,对工作模式冲击最大的就算是在线会议了,以前都是会议室,面对面交流,现在都是对着一个屏幕,如果有视频的会议还好,能看见对方,还像一个会议,但大多是没视频的会议,就对着个屏幕,用一位朋友说的,这种会的主讲人,就像一位"过了气的主播",跟大家扯东扯西,没眼神交流,没任何反馈,确实有些尬。
既然在线会议如此之火,出现了很多老的、新的在线会议的软件,这其中最常用的,可能就是腾讯会议了,简单、实用、稳定,是很多人选择他的原因。
大家都知道,腾讯会议上开会,无论是加入会议,还是创建一个快速会议,又或者是预定一个会议,都是用的一个会议号进行标识的,

如果细心的朋友会注意到,这个会议号是一个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链表设计,最少最近使用的队列,根据当前会议号的使用情况,动态淘汰最少使用的会议号,这给用户的体验就会很好,但相对来说,在设计和实现上,就会更加复杂一些。
腾讯会议的稳定性、功能上的实用性、操作上的简易性,很出众,其实这些都是同类软件的基础,都是用户最需要的功能,相比很多"花里胡哨"的同类软件,在产品的设计层面还是有很多值得借鉴的地方。
近期更新的文章:
《充电宝的玄机》
文章分类和索引:
边栏推荐
- Talking about the knowledge of digital transformation
- HAOGE's blog Road
- 小程序容器到底是什么
- SQL语句中EXISTS的详细用法大全
- MySQL事務隔離
- Several cases of index invalidation caused by MySQL
- How to handle the IP inconsistency in the contact when easygbs is cascaded with the upper level
- go语言学习
- Kotlin 集合List 、Set、Map操作汇总
- Is Everbright futures safe? What do I need to open an account?
猜你喜欢
随机推荐
PLC数据操作系列之构造不同应用场景的缓存栈FIFO(算法详解)
Apache log4j 2 reported high-risk vulnerability, coding teamed up with Tencent to protect software security
How to handle the IP inconsistency in the contact when easygbs is cascaded with the upper level
Docker中部署Redis集群与部署微服务项目的详细过程
Ambire 指南:Arbitrum 奥德赛活动开始!第一周——跨链桥
企业网站的制作流程是什么?设计和制作一个网站需要多长时间?
Detailed process of deploying redis cluster and micro service project in docker
《阿里云天池大赛赛题解析》——O2O优惠卷预测
SQL语句中EXISTS的详细用法大全
Analysis on the advantages and disadvantages of the best 12 project management systems at home and abroad
C WinForm custom progress bar ProgressBar
Deserialization - PHP deserialization
Graph theory (tree diameter)
Go deep: the evolution of garbage collection
HDLBits->Circuits->Arithmetic Circuitd->3-bit binary adder
Androidkotlin comprehensive and detailed class usage grammar learning guide
Go language core 36 lectures (go language practice and application 23) -- learning notes
"Shanda Diwei Cup" the 12th Shandong ICPC undergraduate program design competition
PHP curl function extension basic usage
How to batch generate flattermark barcode






