熟悉javaEE基础、Linux、redis、hbase、MyBatis、SpringBoot、Kafka、RabbitMQ、MySQL、Redis、elasticsearch
熟悉postman/apipost软件进行接口测试,可在开发过程中系统性归档自测接口提供给测试人员使用;
掌握基于SpringCloud alibaba的微服务项目开发,熟悉Nacos,Ribbon,Feign,sentinel等组件,了解SpringCloud Netflix;
掌握Nginx反向代理服务的基本使用,了解常用的负载均衡策略;
熟悉JavaScirpt,VUE,Element-ui等主流前端技术;
项目描述:智能推荐引擎
本项目是****旗下的一个智能推荐大项目中的可视化管理环节,计划用于慢慢替换原有的推荐运营系统,我主要负责该项目可视化部分所有后端代码开发。
该项目主要布局类似于传统的管理系统,前端选型为Vue2.0,后端选型为springboot3。
鉴权方面:
登录入口初为传统的账号密码登录页面,但实际认证是将用户信息发送至咪咕南京统一认证服务器进行校验,根据其返回的token判断用户权限,本地并不存储用户密码信息。用户登录成功后会解析token中的用户数据并从新调整后写入redis确认用户登录状态并通过本地用户角色表中关联的菜单仅向该用户展示权限内菜单。 后续由于登录功能接入了咪咕4A登录系统,账密登录入口仅告知管理人员方面调试使用,后续其它人员登录均通过咪咕4A登录系统内访问登录。
项目页面:
项目首页主要分为两类,超级管理员页面和租户页面
超级管理员页面包含了本项目所有功能模块,其中可以进行租户管理、用户管理、资源管理、全局日志管理、领域管理等功能;租户管理中主要进行租户新建编辑禁用等功能,租户是本项目最高层级的菜单权限分隔,具体菜单权限由角色控制,超管可以创建角色及变更角色菜单权限,修改租户角色等,用户管理可编辑哪些用户可以参与哪些租户是一个多对多关系;
租户管理模块为本项目普通参与者核心模块,第一步是根据用户权限展示可支配菜单、然后是个菜单功能使用。菜单展示比较常规、稍特殊一点的新增频道会同时在两个一级菜单中插入新增的频道作为四级菜单(基本菜单为一级、领域二级、子领域为三级),频道中采用雪花算法生成每个频道唯一标识。运营管理中本属于普通的增删改查,但最新一次版本中,将本大模块全局做成了自动化模式,直接在超管中子领域管理配置大JSON来配合前端生产页面,并统一完成增删改查;数据管理模块大多也是解析JSON进行增删改查,只是状态太多,配合前端进行页面控制的交互比较繁琐;
项目技术选型:
由于该项目主要提供给可视化上游人员参与租户各项参数配置及将各种配置整合提供于下游算法人员计算,实际并未涉及高并发及大数据量,故常规的缓存采用了redis做用户数据缓存及通用配置缓存、数据库mysql采用了自增主键提高检索效率、项目配置方面选择了引入nacos作为注册中心方便某些配置进行动态修改、由于鉴权由南京数据库进行校验,本地只存储了用户基础信息,故选择了动态任务配和触发器在nacos上配置定时时间cron定期进行用户信息同步、功能上会将页面配置下发给算法人员进行计算故选择了kafka作为消息中间件发送并存储消息。
项目非常规点:
项目中引入了拓扑图中为TAG流程图配置,每一个节点对应一个任务,需有序非闭环提供给算法端按续执行任务;该功能数据库采用记录节点坐标与图标名称保证前端图形化页面正确显示TAG流程图位置及箭头指向,由于任务数不多故采用了计算任务执行顺序及验证是否闭环。
由于改项目生产部署了多个节点,而定时同步获取南京数据库用户信息的cron表达式是从nacos上统一获取数据,为了保证同步过来的数据写入本地数据库唯一,故采用了以下两个方案:设置了本地库用户手机号唯一索引、添加用户同步功能分布式锁。而咪咕服务器禁用了lua脚本导致无法直接使用redisson工具,故只能采用redis原生命令设置,并定时检测应用健康状态。
1.负责本项目1.0版本项目结构搭建、负责本项目初始数据库设计、技术选型; 2.负责本项目后台所有版本功能迭代及代码开发; 3.负责本项目测试环境、预发布环境调试部署及功能维护; 4.负责本项目与上下游人员联调工作、完善上下游联动功能优化;
1.负责本项目新增后端功能开发及维护; 2.负责本项目测试预发环境部署及维护; 3.负责本项目部分bug修复