如果可以作弊😃

高级JAVA工程师
中电金信上海分公司 · 5年经验
如果可以作弊😃
日薪: ¥500/8h
地点: 上海 浦东
时间: 下班后周六周日可工作日远程
ID:309473 复制

0
接单数
0
评价数
0
收藏数

AI 技能提取 | Java MySQL Redis Git SVN Spring Boot Spring Cloud Spring MyBatis 敏捷开发 Vue React JavaScript HTML CSS
1. 熟练掌握Java语法、面向对象编程(OOP)原则(如封装、继承、多态)、异常处理、集合框架等;
2.熟悉Spring、SpringBoot、SpringCloud、SpringCloudAlibaba等主流框架,包括MVC模式、ORM框架(MyBatis)、消息队列;
3. 熟练使用关系型数据库MySQL和非关系型数据库Redis; 掌握SQL语言,能够进行数据库设计、查询优化等;
4.熟练使用版本控制系统(如Git、SVN),理解分支管理、合并冲突等概念;熟悉敏捷开发流程,具备良好的团队协作和沟通能力;
5.了解HTML、CSS、JavaScript等前端技术,能够使用前端框架(如React、Vue)进行前端开发

中国银联-反欺诈评分决策系统项目
软件环境:Java、Spring、SpringBoot、SpringCloud、SpringCloudAlibaba、Mybatis、MySQL、Redis、Kafka
系统要求:系统应至少支持处理每日300万笔的查询请求、系统峰值应至少支持处理500TPS的查询请求。
项目描述:本系统定期接受由银联数据厨房发送的批量结构化数据,即风险标签,该过程为批量过程。系统内部对该数据进行必要的简单处理,并根据银联提供的模型文件对该数据进行逐行的批量模型部署运算,形成风险评分。在实时调用环节,本系统可实时响应银联开放平台的查询报文,根据业务参数配置实时将查询到的结果以“标签+评分”的形式实时反馈给银联开放平台,并实现相关查询信息的内部入库等一系列动作。主要功能如下:
1.变量中心:
a)变量配置:通过变量进行配置数据存储方式,配置衍生变量加工逻辑对数据进行加工处理,提供跑批任务中对文件中数据根据变量配置进行解析、加工,根据各个变量存储方式进行存储,机构进行配置便签查询数据。根据配置变量的数据分布,在统计时显示不同的统计维度。
技术实现:使用Spring Boot框架结合MyBatis进行数据库操作,存储变量配置信息,前端使用react+ant design pro组件+umijs框架进行页面展示和交互。
b)函数管理:函数管理提供变量加工逻辑的函数,用户可以在本模块编写代码并封装成自定义函数,在创建和修改变量时使用。在跑批任务中配置的衍生变量会根据配置的函数进行衍生加工,获得加工后的数据,进行存储。
技术实现:MyBatis进行数据库操作,存储自定义函数信息,使用函数时使用javax.tools的JavaCompiler 接口和相关类,在运行时从数据库中查询到相关函数动态编译函数并执行。
2.模型管理:
对模型文件进行维护,可上传pmml或pkl类型的模型文件,配置模型编号,对上传的模型进行测试验证,验证成功后进行上线,之后在反欺诈数据跑批中就可根据调用该模型进行模型计算
技术实现:MyBatis实现模型文件的增删改查,测试验证上传测试数据,使用JPMML对模型解析并计算出结果
3.同步管理:
a)批次管理:发起跑批数据任务,根据产品服务,读取数据厨房对应目录下的文件,选择需要跑批的文件,将银联数据厨房文件同步到共同运营区,根据变量配置进行解析加工落库
技术实现:从数据仓库获取大量(8亿多)基础数据文件,将文件分割成多个小文件,并且使用shardingsphere进行分库分表,使用mysql的load data 命令将数据以文件的形式落库,并且将基础数据发送到kafka中,以供路由服务消费基础数据并调用模型服务的模型解析并计算功能,得出预测评分数据并且根据每个变量的储存要求(数据库/redis);存入数据库则是将变量存入数据库后预测评分数据继续发送到kafka中,以供消费服务消费,消费服务从kafka中监听数据将数据load data落库;存入redis则不需要发送kafka,直接存入。
难点1: 8亿多数据发送到kafka中偶现数据丢失情况:
解决方案:1.扩容kafka分区为36个,增加并发量
2.修改kafka发送消息成功ack=all(所有从节点确认收到消息)
3.kafka消费端消费消息改为手动提交偏移量
4.启动定时任务,每半小时校验消费情况,允许数据丢失率为0.01%
难点2: 8亿多数据存入redis速度过慢,数据存入失败
解决方案:1.使用redis的pipeline管道代替普通redis存入方法
2.加重试机制,重试6次后仍失败,将数据打印到日志里人工处理
难点3:路由服务监听kafka数据时数据量过大,出现OOM问题
解决方案:1.修改JVM的内存值为5G -XX:MetaspaceSize=5G -XX:MaxMetaspaceSize=5G
2.修改kafka消费端拉取数据配置改成每次拉取5000数据量max.poll.records=10000改为max.poll.records=5000
b)定时任务:设置资金流程和反欺诈数据跑批任务定时执行,可控制开启和关闭自动跑批任务,根据配置定时执行跑批任务
c)数据关联:反欺诈场景支持基于主键ID的横向拓展数据,即选择对应目录下的文件,选择的同步的数据与当前库中的数据进行left outer join操作,关联之后存入当月数据库中:若本次数据中为身份证号为主键,就与当前月系统库中的身份证号为主键的数据进行全表关联,若本次数据中为手机号为主键,就与当前月系统库中的手机号为主键的数据进行全表关联;
4.回溯管理:实现特
如果可以作弊😃 ID:309473 复制

如果可以作弊😃

高级JAVA工程师 · 5年经验 · 中电金信上海分公司
城市上海 浦东 日薪500元/8h 时间 下班后周六周日可工作日远程
0
累计接单
0
用户评价
0
被收藏

信用行为

0
接单数
0
评价数
0
收藏数

技术能力

AI 技能提取 | Java MySQL Redis Git SVN Spring Boot Spring Cloud Spring MyBatis 敏捷开发 Vue React JavaScript HTML CSS
1. 熟练掌握Java语法、面向对象编程(OOP)原则(如封装、继承、多态)、异常处理、集合框架等;
2.熟悉Spring、SpringBoot、SpringCloud、SpringCloudAlibaba等主流框架,包括MVC模式、ORM框架(MyBatis)、消息队列;
3. 熟练使用关系型数据库MySQL和非关系型数据库Redis; 掌握SQL语言,能够进行数据库设计、查询优化等;
4.熟练使用版本控制系统(如Git、SVN),理解分支管理、合并冲突等概念;熟悉敏捷开发流程,具备良好的团队协作和沟通能力;
5.了解HTML、CSS、JavaScript等前端技术,能够使用前端框架(如React、Vue)进行前端开发

项目经验

中国银联-反欺诈评分决策系统项目
软件环境:Java、Spring、SpringBoot、SpringCloud、SpringCloudAlibaba、Mybatis、MySQL、Redis、Kafka
系统要求:系统应至少支持处理每日300万笔的查询请求、系统峰值应至少支持处理500TPS的查询请求。
项目描述:本系统定期接受由银联数据厨房发送的批量结构化数据,即风险标签,该过程为批量过程。系统内部对该数据进行必要的简单处理,并根据银联提供的模型文件对该数据进行逐行的批量模型部署运算,形成风险评分。在实时调用环节,本系统可实时响应银联开放平台的查询报文,根据业务参数配置实时将查询到的结果以“标签+评分”的形式实时反馈给银联开放平台,并实现相关查询信息的内部入库等一系列动作。主要功能如下:
1.变量中心:
a)变量配置:通过变量进行配置数据存储方式,配置衍生变量加工逻辑对数据进行加工处理,提供跑批任务中对文件中数据根据变量配置进行解析、加工,根据各个变量存储方式进行存储,机构进行配置便签查询数据。根据配置变量的数据分布,在统计时显示不同的统计维度。
技术实现:使用Spring Boot框架结合MyBatis进行数据库操作,存储变量配置信息,前端使用react+ant design pro组件+umijs框架进行页面展示和交互。
b)函数管理:函数管理提供变量加工逻辑的函数,用户可以在本模块编写代码并封装成自定义函数,在创建和修改变量时使用。在跑批任务中配置的衍生变量会根据配置的函数进行衍生加工,获得加工后的数据,进行存储。
技术实现:MyBatis进行数据库操作,存储自定义函数信息,使用函数时使用javax.tools的JavaCompiler 接口和相关类,在运行时从数据库中查询到相关函数动态编译函数并执行。
2.模型管理:
对模型文件进行维护,可上传pmml或pkl类型的模型文件,配置模型编号,对上传的模型进行测试验证,验证成功后进行上线,之后在反欺诈数据跑批中就可根据调用该模型进行模型计算
技术实现:MyBatis实现模型文件的增删改查,测试验证上传测试数据,使用JPMML对模型解析并计算出结果
3.同步管理:
a)批次管理:发起跑批数据任务,根据产品服务,读取数据厨房对应目录下的文件,选择需要跑批的文件,将银联数据厨房文件同步到共同运营区,根据变量配置进行解析加工落库
技术实现:从数据仓库获取大量(8亿多)基础数据文件,将文件分割成多个小文件,并且使用shardingsphere进行分库分表,使用mysql的load data 命令将数据以文件的形式落库,并且将基础数据发送到kafka中,以供路由服务消费基础数据并调用模型服务的模型解析并计算功能,得出预测评分数据并且根据每个变量的储存要求(数据库/redis);存入数据库则是将变量存入数据库后预测评分数据继续发送到kafka中,以供消费服务消费,消费服务从kafka中监听数据将数据load data落库;存入redis则不需要发送kafka,直接存入。
难点1: 8亿多数据发送到kafka中偶现数据丢失情况:
解决方案:1.扩容kafka分区为36个,增加并发量
2.修改kafka发送消息成功ack=all(所有从节点确认收到消息)
3.kafka消费端消费消息改为手动提交偏移量
4.启动定时任务,每半小时校验消费情况,允许数据丢失率为0.01%
难点2: 8亿多数据存入redis速度过慢,数据存入失败
解决方案:1.使用redis的pipeline管道代替普通redis存入方法
2.加重试机制,重试6次后仍失败,将数据打印到日志里人工处理
难点3:路由服务监听kafka数据时数据量过大,出现OOM问题
解决方案:1.修改JVM的内存值为5G -XX:MetaspaceSize=5G -XX:MaxMetaspaceSize=5G
2.修改kafka消费端拉取数据配置改成每次拉取5000数据量max.poll.records=10000改为max.poll.records=5000
b)定时任务:设置资金流程和反欺诈数据跑批任务定时执行,可控制开启和关闭自动跑批任务,根据配置定时执行跑批任务
c)数据关联:反欺诈场景支持基于主键ID的横向拓展数据,即选择对应目录下的文件,选择的同步的数据与当前库中的数据进行left outer join操作,关联之后存入当月数据库中:若本次数据中为身份证号为主键,就与当前月系统库中的身份证号为主键的数据进行全表关联,若本次数据中为手机号为主键,就与当前月系统库中的手机号为主键的数据进行全表关联;
4.回溯管理:实现特
客服二维码

没找到合适的人才?

扫码添加客服极速匹配,或直接发布需求让更多人才主动报名

平台担保交易 · 1小时内不满意可退款

平台信誉与实力

基于 35,336 需求方信任

  • 支付宝企业信用分 优秀 评级
  • 市场份额约占全行业三分之一
  • 程序员兼职行业全能首选平台
查看平台资质详情
收藏