知识卡片

用户管理:数据量大但不难实现,关键是用户间无强关联

普通读书笔记卡

内容

互联网业务的一个典型特征是通过互联网把众多分散的用户连接起来,因此用户管理是互联网业务必不可少的一部分。稍微大一点的互联网业务肯定会涉及多个子系统,这些子系统不可能每个都各自管理庞大的用户数据,由此引申出用户管理的两个核心目标。第一个目标是单点登录(SSO,又叫统一登录),实现手段较多(cookie、JSONP、token等),目前最成熟的开源方案是CAS。第二个目标是授权登录:当业务做大成为平台后,为了促进业务进一步发展,需要允许第三方应用接入,目前最流行的授权登录协议是OAuth 2.0,已基本成为事实标准——如果要做开放平台,最好用这个协议,因为私有协议漏洞多、第三方接入也麻烦。用户管理系统面临的主要挑战表面上是”用户数巨大”——一般至少千万级,QQ、微信、支付宝这种巨无霸应用甚至是亿级用户,但这个数据量并不意味着实现难度也随之飙升。原因在于:用户数据量虽然大,但不同用户之间没有太强的业务关联,A用户登录和B用户登录基本互不相关(不像订单、库存那样存在跨用户的强业务耦合)。正因为用户之间缺乏强关联,即便数据量巨大,也可以用一个简单的负载均衡架构就轻松应对,不需要为跨用户的复杂业务关系设计特殊架构。

参考来源

- 位置:《从零开始学架构》第43讲《互联网架构模板:"用户层"和"业务层"技术》"用户层技术"之"用户管理"(源文件:_epub-src/OEBPS/text00003.html) - 结论依据:原文说明"用户管理系统面临的主要问题是用户数巨大……不过也不要被这个数据给吓倒了,用户管理虽然数据量巨大,但实现起来并不难,原因是什么呢?因为用户数据量虽然大,但是不同用户之间没有太强的业务关联……因此虽然数据量巨大,但我们用一个简单的负载均衡架构就能轻松应对",直接支撑本卡结论。 - 原始内容:用户管理虽然数据量巨大,但实现起来并不难,原因是什么呢?因为用户数据量虽然大,但是不同用户之间没有太强的业务关联,A 用户登录和 B 用户登录基本没有关系。因此虽然数据量巨大,但我们用一个简单的负载均衡架构就能轻松应对