2023.07-至今 商用短链平台
JAVA开发工程师
项目描述:
为客户提供生成短链码的功能,一个短链码对应一个真实的网页链接,通过访问短链可以进行网页跳转 用户可以通过购买不同的流量包每天创建不定次数的短链
项目技术:
SpringCloud+Mysql+Redis+Rabbitmq+Shardingsphere+OSS+xxl-job+Kafka
项目职责:
1、 对接阿里云oss存储项目文件
2、 使用shardingsphere进行分库分表
3、 短链码生成方案,使用murmurhash生成10进制数,可表示接近43亿的10进制数,之后转换成62进制,进行缩短
4、 冗余双写方案,使用rabbitmq进行消息发送C端队列,B端队列 进行分别存储,C端用户进行查看,B端用于商家进行查看
5、 使用redis分布式锁对短链码就行加锁,保证唯一性 避免短链码高并发下重复,多次插入数据库失败
6、 rabbitmq配置自动确认,消费失败自动进行重试 重试达到指定次数进到异常交换机和异常队列 通过异常队列进行发送信息通知工作人员
7、 使用redis分布式锁对短链码就行加锁,保证唯一性,避免短链码高并发下重复,多次插入数据库失败
8、 短链流量包下单 防重提交,使用服务端token令牌下单前先获取令牌-存储redis,下单时一并把token提交并校验删除,如果删除成功则下单成功,失败则为重复提交 配合自定义注解实现
9、 创建订单后,使用rabbitmq发送延迟消息,消费者进行监听,延迟时间过后 进行订单状态的查询,如果订单支付成功则修改订单状态成功,反之则失败
10、 使用xxl-job定时任务对购买的过期流量包进行删除
11、 创建短链扣减流量包异常,短链创建失败,但是流量包已经扣减,流量包服务扣减库存前保存一个task任务 记录扣减的流量包使用定时任务通过rabbitmq延迟队列实现扫描task任务表,如果超过一定时间task状态还是未完成,则回滚流量包
12、 使用kafka配合flink进行短链访问进行统计,dwd层通过reference进行来源分布统计分析使用ip+useragent生成唯一设备标识根据访问时间 对新老访客进行统计,dwm层对设备信息 地理位置信息进行补充对UV访客进行统计,dws层对数据进行聚合
2022.10-2023.06 享送代驾小程序
JAVA开发工程师
项目描述:
享送代驾小程序旨在为用户提供便捷、安全的代驾服务。项目主要通过微信小程序实现司机认证、订单管理、路线规划和智能接单等功能。我们利用微信OCR服务和腾讯云人脸识别技术,确保司机的身份真实性。通过腾讯位置服务,提供精确的路线规划和距离计算,方便司机和乘客共享位置信息。项目采用Redis和RabbitMQ实现高效的订单管理和消息通知系统,确保司机能快速抢单并智能播报订单信息。大数据平台由HBase和Phoenix搭建,用于存储和分析GPS定位数据、司机与乘客的交流信息等。项目还集成了AI技术,对司乘对话进行安全评级,利用热力图分析上车点分布情况,确保整体服务的安全与优化。此外,我们通过多种技术手段防止刷单行为,保障平台的公平性和安全性。订单结算过程中,通过精确的里程计算和费用估算,提供透明的账单信息,并支持微信分账功能,提升用户体验和信任度。
项目技术:
SpringCloud+Mysql+Redis+Rabbitmq+Shardingsphere+Minio+Quartz+HBase+Phoenix+腾讯地图服务+微信支付
项目职责:
1、 开通微信小程序ocr服务识别身份证,行驶证 提交司机认证信息
2、 使用腾讯云人脸识别服务,开通活体检测 甄别真实注册司机
3、 开通腾讯位置服务,获取两个地点之间的距离,路线规划,司乘同显
4、 往redis里面插入缓存,配合redis事物用于司机抢单,避免多个司机抢单成功
5、 使用redisGEO功能寻找附近合适接单的司机,司机可选择定向接单,接单范围,订单总里程
6、 使用rabbitmq进行收发订单,通知合适的司机进行抢单,司机端使用轮询方式接受新订单,使用语言引擎智能播报订单信息
7、 使用redis发布订阅进行过期订单数据销毁
8、 使用hbase+phoenix搭建大数据平台 存储gps定位信息,代价过程中司机乘客交流信息 安全评级信息
9、 使用微信同声音传译插件实现录音并将录音转成文本,将录音监控保存到minio私有云,对话文本保存到大数据平台
10、 司机端打击刷单,禁止其他手机卡登录司机小程序,利用地图服务,智能判断司机刷单行为
11、 利用AI对司乘对话内容安全评级(腾讯数据万象)