大数据&云计算大数据下的用户中心如何设计
用户中心 , 几乎是所有互联网公司 , 必备的子系统 。 随着数据量不断增加 , 吞吐量不断增大 , 用户中心的架构 , 该如何演进呢 。
什么是用户中心业务?
用户中心是一个通用业务 , 主要提供用户注册、登录、信息查询与修改的服务 。
用户中心的数据结构是怎么样的?
用户中心的核心数据结构为:
User(uid, login_name, passwd, sex, age, nickname, …)
其中:
(1)uid为用户ID , 为主键;
(2)login_name, passwd, sex 等是用户属性;
其系统架构又是怎么样的呢?
在业务初期 , 单库单表 , 配合用户中心微服务 , 就能满足绝大部分业务需求 , 其典型的架构为:
本文插图
(1)user-center:用户中心服务 , 对调用者提供友好的RPC接口;
(2)user-db:对用户进行数据存储;
当数据量越来越大 , 例如达到1亿注册量时 , 会出现什么问题呢?
随着数据量越来越大 , 单库无法承载所有的数据 , 此时需要对数据库进行水平切分 。
常见的水平切分算法有“范围法”和“哈希法” 。
水平切分 , 什么是范围法?
范围法 , 以用户中心的业务主键uid为划分依据 , 采用区间的方式 , 将数据水平切分到两个数据库实例上去:
本文插图
【大数据&云计算大数据下的用户中心如何设计】(1)user-db1:存储0到1千万的uid数据;
(2)user-db2:存储1千万到2千万的uid数据;
范围法有什么优点?
(1)切分策略简单 , 根据uid , 按照范围 , user-center很快能够定位到数据在哪个库上;
(2)扩容简单 , 如果容量不够 , 只要增加user-db3 , 拓展2千万到3千万的uid即可;
范围法有什么缺点?
(1)uid必须要满足递增的特性;
(2)数据量不均 , 新增的user-db3 , 在初期的数据会比较少;
(3)请求量不均 , 一般来说 , 新注册的用户活跃度会比较高 , 故user-db2往往会比user-db1负载要高 , 导致服务器利用率不平衡;
画外音:数据库层面的负载均衡 , 既要考虑数据量的均衡 , 又要考虑负载的均衡 。
水平切分 , 什么是哈希法?
哈希法 , 也是以用户中心的业务主键uid为划分依据 , 采用哈希的方式 , 将数据水平切分到两个数据库实例上去:
本文插图
(1)user-db1:存储奇数的uid数据;
(2)user-db2:存储偶数的uid数据;
哈希法有什么优点?
(1)切分策略简单 , 根据uid , 按照hash , user-center很快能够定位到数据在哪个库上;
(2)数据量均衡 , 只要uid是随机的 , 数据在各个库上的分布一定是均衡的;
(3)请求量均衡 , 只要uid是随机的 , 负载在各个库上的分布一定是均衡的;
画外音:如果采用分布式id生成器 , id的生成 , 一般都是随机的 。
哈希法有什么缺点?
(1)扩容麻烦 , 如果容量不够 , 要增加一个库 , 重新hash可能会导致数据迁移;
用户中心架构 , 实施了水平切分之后 , 会带来什么新的问题呢?
使用uid来进行水平切分之后 , 对于uid属性上的查询 , 可以直接路由到库 , 假设访问uid=124的数据 , 取模后能够直接定位db-user1:
推荐阅读
- 金十数据|中国7月制造业交亮眼成绩单!上半年美国对华投资增长6%,好消息
- 金十数据|苹果欲向印转移6条生产线,印度手机市场混战:三星份额紧追小米
- 餐厅|大数据显示:二季度餐厅服务员求职环比上升超150%,快递员收入第一
- 美剧去哪看|状元们最后都干什么?权势巨子数据显示,3300名状元,最后只是……
- "飒"英雄!20岁女兵征服40吨远火车 巾帼不让秀媚
- 零售店|194年历史!美国最古老奢侈品百货店Lord&Taylor申请破产保护
- 中国天气网|哪些台风与“黑格比”相似,大数据看8月台风
- 新闻科技快报 华云数据用创新技术夯实中国信创“云基座”
- 问董秘|因为公司的发动机产品满足国六标准...,投资者提问:在公司营销数据和半年报中发现
- 天擎|海纳百川 风云际会——气象大数据云平台“天擎”
