用户中心的设计与实践

用户中心的设计与实践

游戏技术团队 vivo互联网技术 2021-03-03
https://mp.weixin.qq.com/s/68ktS5d4B2fCub8SqVeUEw

用户中心是互联网最为基础的核心系统,随着业务和用户的增长,势必会带来不断的挑战。如何在亿级的情况下保证系统的高可用,高性能以及高安全,本文能够给你一套实践方案。

 

注1:本文讨论的是微服务框架下的用户中心,不涉及授权等功能;

注2:本文所涉及的用户中心设计与vivo自身业务无关。

 

 

用户中心,顾名思义就是管理用户的地方,几乎是所有互联网公司最为核心的子系统之一。它的核心功能是登录与注册,主要功能是修改密码、换绑手机号码、获取用户信息、修改用户信息和一些延伸服务,同时还有登录之后生成Token以及校验Token的功能。下面我们从几个维度来拆解用户中心。

一、服务架构

 

用户中心既需要为用户提供服务,也会承担其他业务的频繁调用;既然需要为用户提供服务,它就会自带一些业务逻辑,比如用户在登录过程中需要风控或短信的校验,那么就会存在不可用的风险。而比如获取用户信息的接口,则没有那么多的依赖,可能只需要调用数据库或者缓存就可以。获取用户信息接口要求稳定,而核心的登录注册接口也需要稳定,但是当我们在接口层面加一些策略或者修改的时候,不希望因为上线问题导致整个服务不可用,而且上线后,需要对整个服务功能做全量的回归,导致资源严重浪费。

 

因此,基于业务特性,我们可以将用户中心拆成3个独立的微服务: 网关服务,核心服务,异步消费者服务。网关服务,提供http服务,聚合了各种业务逻辑和服务调用,比如登录时候需要校验的风控或者短信;核心服务,处理简单的业务逻辑以及数据存储,核心服务处在调用链路的终端,几乎不依赖调用其他服务,比如校验Token或者获取用户信息,他们就只依赖于redis或者数据库;而异步消费者服务,则处理并消费异步消息。下文会详细介绍。

 

 

 

 

 
 
 
 
 
 
 
 
 
posted @ 2021-03-03 23:51  papering  阅读(1277)  评论(0编辑  收藏  举报