Telegram声称拥有5个数据中心(DC),在代码和文档中称为DC1至DC5。DC1和DC3位于美国迈阿密,DC2和DC4位于荷兰阿姆斯特丹,而DC5则位于新加坡。
用户与数据中心的关联
每个账户在注册时都会与一个数据中心关联,这一关联不会因为用户的电话号码或地理位置而改变。用户无法自由选择数据中心,如果连接到错误的数据中心,服务器将返回错误信息,要求客户端连接到与账户关联的正确数据中心。
DC5的频繁宕机
在5个数据中心中,DC5在中国Telegram社区中尤其知名,并不是因为它悄然服务大量中国用户,而是因为它频繁宕机。当DC5宕机时,用户无法使用Telegram,圈子里的话题往往变成了“为什么DC5又宕机了?”DC5的用户只能等待不断“重连”的客户端恢复,然后与其他数据中心的用户一起批评DC5。
DC2与DC3的谜团
为了满足群成员的好奇心,有人创建了一个机器人来查询用户所在的数据中心。用户发现,注册+86电话号码的用户在DC5(新加坡),而注册+1电话号码的用户在DC1(美国迈阿密),享受连接速度和稳定性。注册欧洲电话号码的用户则在DC4(阿姆斯特丹),成为中国Telegram社区中的稀有用户。
但是,DC2和DC3去哪了?通过机器人的消息查询,发现DC1有360个用户,DC4有50个用户,DC5有390个用户,而DC2和DC3则显示为0。因此,有人推测DC2和DC3没有用户,另一些人分析认为DC2和DC3可能是DC1和DC4的子数据中心,只有在其父数据中心繁忙时才接受用户注册。
Telegram的数据中心分配规则
根据2022年5月的Telegram数据中心分配规则,DC1、DC2、DC4和DC5根据注册时提供的电话号码的国家代码进行分配。这四个数据中心随时接受新用户注册,并且有大量现有用户。DC3曾有用户,但在2020年左右,DC3的用户可能已转移至DC1,目前DC3可能没有用户,也不再接受新注册。
如何确认自己在哪个数据中心
目前有3种常见方法来确定数据中心:
方法1(登录方法)
使用分配给DC2的电话号码,通过Telegram的MTProto协议连接到DC1,调用auth.sendCode接口,尝试发送验证码注册账户,此时服务器返回PHONE_MIGRATE_2错误,提示客户端应连接到DC2。
方法2(头像/文件方法)
注册DC2账户后,使用第三方客户端(如Plus Messenger)登录另一个账户,检查新账户的DC。此方法需要上传头像后才能显示DC。
方法3(Web CDN方法)
使用前述机器人查询新账户的DC,结果显示该账户在DC4。这是因为机器人通过Telegram的Web CDN来判断用户的DC。
通过这些方法可以确认DC2用户并不少见,但DC3用户则极为稀少。经过大量搜索,发现仅有两个用户在DC3,但进一步分析显示他们可能已被转移到DC1。
总结
综上所述,DC3目前不再接受新用户,现有用户可能已全部转移到DC1。如果想要在特定的数据中心注册用户,避免DC5的宕机风险,可以参考之前的图像并注册特定国家代码的电话号码。由于Telegram的服务器和一些操作机制并非开源,文章中的许多结论基于推测,欢迎读者评论提供更多线索。
博主点评: Telegram的数据中心分配机制及其用户管理策略揭示了许多有趣的技术细节,尤其是DC5频繁宕机的现象值得关注。通过合理的方法来识别用户所在的数据中心,不仅能帮助用户优化使用体验,还能为Telegram的未来发展提供重要参考。