该项目是一个面向c端为用户提供招聘服务的平台,包含app、网站、h5、小程序。
支持用户搜索职位,投递简历,和hr聊天。
完成对51app 各版本的职位模块、广告模块、我的页模块,简历模块的接口支持。
其中简历模块的接口也会提供给公司其他组调用
主要负责后端,为客户端提供接口和文档。
1:通过 oracle 存储用户数据,其中用户表按照冷热数据分表,使用 memcache 做缓存;
2:职位数据存在 mysql中,通过 redis 做了层缓存;
3:部分功能使用 rabbitmq 异步处理,如后台 push ;
4:对调用量大的接口通过 redis的 setnx 做防并发处理。
5:把调用方分为内网调用和授权调用,内部调用主要走内网调用,客户端调用走授权调用。
6:通过 oracle 存储简历数据(包含用户信息表、求职意向表、工作经验表、教育经历表等),
7:mongodb的 BSON(二进制 JSON)文档类型数据库,适合存储简历这种数据,但 mongodb 的对单个索引查询友好,对范围查询不友好,故还用 memcache 缓存用户所有简历 id 数据。
8:使用旁路缓存策略,查询时候有缓存查缓存,没有查数据库并种缓存,更新时候,先更新数据然后删除缓存。
9:有个后台 shell 任务每天执行,查询当天数据库中更新简历用户,判断和 mongo 更新时间是否一致,不一致认为 mongo 中是脏数据,重新更新 mongo 数据
10:当 mongo 简历有较大改动,会更新 version 字段,并写一个后台脚本批量更新历史 mongo 数据