DeepTech深科技如果几亿人改微信号,腾讯扛得住吗?
你改微信号了吗?6 月 5 日 , 微信官方微博和公众号 , 同时发消息称 , 最新的微信安卓版 , 支持修改微信号 。
【DeepTech深科技如果几亿人改微信号,腾讯扛得住吗?】如一位网友所预测 , 消息很快登上热搜 , 看来这一功能是很多人的痛 。
本文插图
微信号就是微信 ID , 即便有人跟你的微信昵称一样 , 但是微信 ID 仅此一份 。 就好比 , 世界上会有和你重名的人 , 但绝对不会有和你身份证号码一模一样的人 。
不同于身份证号码 , 是按照地域和出生年月设置的 , 微信号是可以随心设置的 , 于是微信号就成了生日墙、表白墙以及代表着各种含义的自留地:有人用前任名字缩写作为微信号 , 有人用生日作为微信号 。 假如现女友问他微信号的字母是啥意思 , 场面估计会很尴尬 。
本文插图
图 | 来源 “微信派” 公众号
所以 , 很多用户早就呼吁张小龙 , 赶紧上线修改微信号的功能 。 不过目前 , 微信 iOS 版还未上线该功能 。 再就是 , 微信号每年只能修改一次 。 所以 , 就算改也得想好再改 。
对于用户来说 , 修改微信号就是动动手指的事 , 但对于上线该功能的微信工程师 , 可就没有这么简单 。
修改微信号 , 本质就是增删
知乎科技博主、前百度 Web 服务工程师霄池告诉 DeepTech , 用户在修改 App ID 时 , 从最通俗的角度来讲 , 后台需要执行一次删除操作 , 一次增加操作 。
对微信号最经常的操作 , 不是修改、而是查询 。 而为了优化查询 , 后台肯定有一套索引机制(B 树或者是 Hash 表) 。
在增删操作时 , 为了保证那些同时进行的查询操作的正确性 , 要将数据锁住(让某些查询操作暂停) , 这一步骤也叫加锁 , 这一步骤通常会用到 Java 语言 , 通常还得借用一些中间件、数据库和第三方组件 。
应对高并发三大法门
原理已经搞清楚 , 那么在目前 , 就算不是所有安卓用户都要改微信号 , 但以微信的体量 , 百万级用户同时修改微信号 , 并非没有可能 。
这时就涉及到高并发 , 高并发很好理解 , 比如鹿晗当初公布恋情 , 导致微博瘫痪 , 这就是没有处理好高并发的后果 。 当时是“十一” , 处理该瘫痪的微博程序员小哥 , 愣是婚礼进行到一半 , 不得已抱着电脑修 Bug 。
本文插图
图 | 新浪程序员婚礼上修 Bug
所以 , 高并发指的是:大量用户在同一时间点、同时访问同一 API 接口或者 URL 地址 。 严格意义上来说 , 大量用户同时修改微信号 , 也存在高并发风险 。
但是 , 解决起来也并不难 。 霄池告诉 DeepTech , 应对高并发写入的第一种办法通常是分片 。 比如将微信号散列并杂凑之后(即 Hash、哈希) , 根据开头数字的不同 , 把微信号存放于几个不同的数据库服务器里 , 就能有效缓解压力 。
当然这么做的时候 , 要考虑到查询操作的逻辑 , 即根据散列和杂凑之后的开头数字 , 去不同的服务器里查询 。
此外 , 分片做法还有个好处 , 就是可以动态上下服务器 , 从而最大程度降低宕机可能性 。
第二种办法是限流 , 好比地铁早高峰时 , 工作人员会举出小牌牌、让乘客分批走一样 。 对于海量用户同时修改微信号 , 可以用一个消息队列、去抹平波峰 。 这一般也需要和运营同事来配合 , 比如声称修改 ID 需要 1-2 个工作日的审核 。
第三种办法 , 对用户体验比较好的方式 , 就是多准备几台服务器 。 现在服务器的价格 , 也比较低廉 , 微信完全可以在发布改名公告之前 , 提前准备好上百台服务器 。
推荐阅读
- 科技一哥|荣耀30青春版图集赏析:触觉与视觉的完美享受
- 科技犬君|vs 索尼A9G 谁强?,上半年用户喜爱手机盘点;小米电视大师65英寸OLED
- 精选泛科技|结果如何?,一加8续航遭质疑:上半年最全机型横评出炉
- 科技犬君上半年用户喜爱手机盘点;小米电视大师65英寸OLED vs 索尼A9G 谁强?
- 科技生活快报TB5000mAh大电池还有65W超级快充!这些手机让你摆脱充电焦虑
- 精选泛科技一加8续航遭质疑:上半年最全机型横评出炉,结果如何?
- 阿拉图图科技说三星新机口碑虽好,但中国市场销量翻车,用户几乎跑光!
- 华为Mate30美科技界:华为再强大也只是一家民企,我们究竟在怕什么?
- 花道子|粉红色手捧花,只为让你感受我温柔的甜蜜
- 科学家■如果宇宙由奇点大爆炸而来,那么奇点又是如何来的?
