2年golang开发经验,熟悉golang基础,(GMP模型,channel,goruntine,GC),了解golang在高并发处理下的常见问题。
熟练使用其他后端开发语言(python,c#,nodejs)。
熟悉RPC框架(gRPC,go-micro)。
熟悉mysql及nosql(redis,leveldb)。
熟悉搜索框架(elasticsearch)。
熟悉消息中间件(kafka)。
了解docker,Jenkins,git等常见开发中使用技术。
了解前端开发框架(react+antd+dva)。
项目描述:该项目为离线API网盟平台,主要做出海广告(CPI结算),我主要负责离线API系统架构设计工作,可接收每日千万级点击量数据,上线至今平稳运行无重大事故出现。
项目模块介绍:
1、订单中心
订单中心包括以下几个部分,定时从已知上游的API接口拉取订单信息,更新数据库中内容,和订单下放。
在设计该功能时主要考虑到,该业务的流程都是一样的,包括拉取API,反序列化,宏替换,入库。只是拉取的json格式和内容替换部分会有差异,所以最后采用模板类去统一接口。
在订单下放的过程中,因为涉及到部分数据需要离线计算,所以设置缓存层降低系统压力。
技术栈:golang、mysql
2、点击转化收集
该服务用于接收高并发的点击和转化数据,每一天的点击回传在千万左右,而转化数据验证需要点击回传的uuid,所以对每一次点击数据都需要保存,时效为七天。
在峰值每天五千万点击的情况下系统最大压力是600并发左右,单机可以抗住1000左右qps的压测。解决方案是使用kafka去缓冲回传数据,多线程消费kafka中数据进行点击数据处理之后存入缓存,之后每秒一次将缓存中的数据提交到leveldb中存储。在转化过来时异步去验证uuid是否在leveldb中存在。
技术栈:golang、mysql、kafka、leveldb
3、报表页面
报表页面主要包括一些订单的配发,收入展示,权限控制等。
技术栈:nodejs,React+antd+dva