当前位置: 首页 > 科技观察

上亿人换微信,腾讯能搞定吗?

时间:2023-03-12 13:37:29 科技观察

你换微信号了吗?6月5日,微信官方微博和公众号发布消息称,最新安卓版微信支持修改微信号。正如网友预料的那样,这条新闻很快就登上了热搜。看来这个功能是很多人的痛。WeChatID就是WeChatID,即使有人和你有相同的微信昵称,也只有一个WeChatID。比如世界上会有和你同名的人,但永远不会有和你同号的人。不同于身份证号码是根据地区和出生日期设置的,微信ID可以随心所欲设置,所以微信ID变成了生日墙、告白墙、代表各种意义的私密地块:有些人用自己名字的首字母前辈做微信号,有人用生日做微信号。如果现在的女朋友问他微信号的字母是什么意思,场面估计会很尴尬。图|来源《微信学堂》公众号因此,早就有不少网友呼吁张小龙赶快上线修改微信功能。不过目前iOS版微信还没有推出该功能。此外,微信号每年只能修改一次。所以,就算改了,也得想清楚再改。对于用户来说,修改微信ID只是动动手指的事情,但对于已经上线该功能的微信工程师来说,就没有那么简单了。修改微信ID本质上就是增删改查知乎科技博主、前百度Web服务工程师小池告诉DeepTech,用户修改AppID时,从最通俗的角度来说,后台需要进行一次删除操作和一次添加操作。微信上最频繁的操作不是修改,而是查询。为了优化查询,后台必须有索引机制(B树或Hash表)。在增删操作时,为了保证那些并发查询操作的正确性,必须对数据进行加锁(暂停一些查询操作)。此步骤也称为锁定。这一步通常使用Java语言,通常你还得借用一些中间件、数据库和第三方组件。三大方法处理高并发的原理都说清楚了,所以目前即使不是所有安卓用户都要改微信号,但是以微信的体量,上百万用户修改也不是没有可能他们的微信号同时。这时候就涉及到高并发了,高并发很容易理解。比如鹿晗公布恋情的时候,微博就瘫痪了。这是没有处理高并发的后果。那时候是“十一”,本该瘫痪的微博程序员小哥目瞪口呆,婚礼进行到一半,只好用电脑修bug。图|新浪程序员BugFixesatWedding那么,高并发是指:大量用户同时、同时访问同一个API接口或URL地址。严格来说,大量用户同时修改微信号也存在高并发风险。不过,解决起来并不难。小池告诉DeepTech,处理高并发写入的第一种方式通常是分片。例如,对微信号进行散列和散列(即Hash,hash)后,根据起始编号的不同,将微信号存储在几个不同的数据库服务器中,可以有效缓解压力。当然,在这样做的时候,必须要考虑查询操作的逻辑,即根据散列和散列后的初始数在不同的服务器中进行查询。此外,分片方式还有一个好处,就是服务器可以动态的上下,从而将宕机的可能性降到最低。第二种方法是限流,就像地铁早高峰时,工作人员会拿出小牌子,让乘客分批下车。对于大量用户同时修改微信,可以使用消息队列来平滑高峰。这通常需要与运营同事合作。比如号称修改ID需要1-2个工作日审核。第三种方法,对用户体验更好,就是多准备几台服务器。现在服务器的价格比较低,微信在发布更名公告前可以提前准备好几百台服务器。值得注意的是,以往微信的大部分功能一般都是先向iOS用户开放,因为只有iPhone使用iOS,适配比较简单。现在有一些新功能,微信也会先对安卓用户开放。看来微信也打算平一碗水了。最后想问你,你的微信号改了吗?