项目名称:百瓶APP服务器开发维护
时长:2020年12月-至今
描述: 百瓶app是一款做主做国内威士忌社区电商的平台
app的主要模块的划分,社区模块,酒库模块,电商模块,活动模块,闲置模块,基础模块等。
公司的项目是以微服务形式构成的,部署流程 :用jenkin 编译部署至k8s上,项目启动会先加载写入容 器内的环境变量,然后获取nacos上的项目配置,并注册服务到上面。基本请求流程 :从nginx 转发至 网关(traefik)然后在转发至聚合服务层,服务层在根据具体业务逻辑通过grpc调用底层服务,我们 使用的框架是B站的Kratos
负责内容 :
酒库模块:他的定位是一个百科全书,为其他模块提供最底层的数据支持
活动模块: 众测模块,酒瓶打卡,酿酒游戏,盲盒抽奖等等
1.酿酒游戏:引流人数最高,所以我在该项目的设计上选择了分表,用户做任务时通过nsq 进行任务通知回调,高频 访问数据,会直接保存程序中,加快访问速度失败时用日志进 行补偿。
2.盲盒抽奖:盲盒抽奖是活动中 最受用户欢迎的,上线之后基本在3分钟就被抢购一空。 所以他需要承受高并发。 我们走了大量的缓存,在网关层做了服务限流,业务层做了容 错机制,聚合层做了降级
基础模块:我主要负责积分模块,评论模块,审核模块第三方调用模块等评论模块:因为各个模块都有评论,大体相同,部分不同,所以数据库选型用mongodb,提供高等扩展的支持。
维护公共库的函数,避免大家重复制造轮子
总结 :公司的业务比较多,所以设计总是扩展很多,会出现过度设计的情况,导致项目复杂度上升我学会了 、一定要和产品多沟通了解未来的方向后再设计。微服务的划分,前期一个项目一个微服务,导致服务、爆炸式增长,所以对服务的划分需要精心设计。还有对服务的补偿机制,失败判断等永远不要相信对 方的服务健全程度。