1. C端用户管理服务
项目简介:该项目其实不能称为一个项目,它涉及到多个渠道的用户登录注册、账号打通以及登录态管理,如微信、QQ、微博、抖音、百度、SDK、App、小程序等等。整个平台的C端用户采用微服务的方式拆分,有负责和第三方服务对接的auth服务,有专门负责平台C端用户的登录态维护系统、还有专门为平台提供C端用户服务系统
涉及系统:
auth系统:用户微信、QQ、微博、抖音、百度小程序、SDK、App等登陆,让第三方服务对业务透明化,C端用户服务较复杂,涉及渠道多,账号登陆体系逻辑复杂,登录鉴权的方式模拟使用auth2.0方式。该系统已经被重构成GO,采用的gin框架,访问速度有了明显提升
登录态管理系统:专门负责整个平台C端用户在各渠道登录态管理的系统,为业务提供登录态校验SDK包,涉及单点登录、指定设备数登录等等,采用集群版redis管理存储用户登录态。
用户管理服务:将平台对接C端用户相关的操作全部收归到此服务下,用户数据库对业务是透明的。该服务提供各类接口供给业务使用
账号合并:由于C端账号涉及很多渠道,所以就会存在同一个用户出现多个账号的情况,账号合并就是专门负责解决此类问题,它会评估哪个账号更有价值,然后将其他的账号信息以及权益数据合并到该账号下。
2. 权限系统
该项目是针对B端管理台做了一个权限系统,小鹅通权限系统基于RBAC模型开发的一套权限系统,涉及员工、角色、权限节点等功能,员工可以有多个角色,同时还可以直接和权限挂钩,增加了权限系统的复杂度,另外权限系统采用二进制的方式校验的,速度更快。存储的格式是将二进制转成十进制存储,节约存储空间。
3. 一屋居社交平台
① 前端采用的是 Layui 框架,后台采用 TP5.0 框架,因为涉及到 SEO 搜索排名,所以采用的是服务端渲染页面;
② 点赞计数系统模拟新浪的冷热数据处理的方式,将最近常用的数据存到 redis 缓存中,以减轻数据库的压力;
③ 人脉主要通过固定关系、互劢来增加互劢值以提升用户之间的人脉度数,由于涉及到的人脉层级比较多,关系也比较复杂,我们采用的是 redis 队列来存储每个人的人脉;
④ 平台搜索功能采用的是 ES5.6。招聘模块的搜索功能比较复杂,分为多个条件的筛选,以及多个字段的搜索,目前使用 ES 中的嵌套映射关系来生成的索引,以到达功能的需求。
⑤ 项目多个数据库采用静态文件缓存,比如行业,职能,地区(省市),学校,与业。以此来减轻数据库的压力;
⑥ 简历模块采用的前端模板渲染引擎 art-template.js,使用数据来驱劢,简历下载采用了wkhtmltopdf 生成 PDF 格式文件下载,简历评估集成邮件发送功能;
⑦ 静态文件使用第三方存储服务,项目集成 OSS、又拍云、七牛云存储,并使用 CDN 加速服务;
⑧ 集成第三方登录,包括微信扫码、QQ、微博登录;集成第三方短信验证服务,包括网易云,阿里云,云之讯;
⑨ 即时通讯由于业务比较复杂,用户身份比较多,采用第三方通讯服务可能无法满足需求。因此项目采用的是基于 workman 自主开发通讯服务;