- 博客(15)
- 收藏
- 关注
原创 优化:将针对单一日志表的冷热数据分离类改造成通用类
文章介绍了店铺推荐系统中日志数据存储方案的优化过程。原方案将热数据存入Elasticsearch,现改为存储冷数据,并针对代码冗余问题进行重构。通过引入泛型机制实现通用处理类,将固定代码参数化,同时为不同日志类型提供定制化ES处理逻辑。优化后的方案提升了代码复用性,支持多日志表并行处理,并通过线程池提高执行效率。文中详细展示了改进后的代码实现,包括通用日志处理方法、任务创建机制和重试策略等核心功能模块。
2025-06-12 22:29:06
90
原创 优化日志分析店铺推荐方案:用户范围的精确度以及ES与MySQL的查询效率差异
本文针对原有店铺推荐方案的两个核心问题提出优化方案。问题一是用户范围不精确,通过Redis记录用户每月首次进店行为作为登录标识,并统计热点用户(月登录≥14天);问题二是数据处理效率低,改用MySQL存储热数据(建立用户-店铺映射),ES仅作冷备份。方案采用Lua脚本确保原子性操作,并优化了权重计算模型(店铺50%、分类30%、分区20%)。最终实现通过分批并行处理用户日志数据,结合个性化推荐与热门店铺补充机制,显著提升了10万级用户日志场景下的推荐效率和精准度。
2025-06-12 21:50:45
550
原创 116秒→6秒:Redis管道+批处理优化用户好友关系校验的方案
在社交平台中,当用户互相关注时需建立好友关系并写入好友表。但在极端情况下(如插入失败),可能导致好友关系数据不一致。需设计一个定时任务,检查并修复所有用户的好友关系数据。已知用户量约 5 万。
2025-06-12 20:16:19
817
2
原创 Sharding-JDBC 定时任务 SQL 无响应的解决方案
添加上述代码后,Sharding-JDBC 能够成功获取到所需的类加载器,顺利加载配置并初始化。程序随即恢复正常运行,预期的 SQL 日志和执行结果都能在控制台正确输出。按理说接下来就会打印sql语句以及对应的参数和返回结果,可是代码在执行到这似乎就停下来了,控制台也没有进一步的输出,也没有抛出任何异常,就像。Spring 框架在执行定时任务时,默认使用的是内置的。这确保了线程在执行应用代码时能正确加载所需的类。也就是说当前线程并没有对应的类加载器。中执行sql语句的时候出现了问题。
2025-06-01 15:04:35
353
原创 点餐场景下:分析实现十万级用户日志的店铺推荐方案
有一个类似美团的点餐小程序,平台入驻了大量商家店铺。用户访问店铺时,系统会记录进店日志。在首页设置一个个性化推荐模块,为用户精准推荐4家店铺。每月产生约10万条进店日志数据。请设计实现该需求。
2025-05-30 20:30:04
1162
原创 Java原创项目:仿b站v1.0(附前后端源码及接口文档)
刚好历时两个月,这个项目也终于是完成了。这单纯是一个练手项目,是一个阶段性的总结。在项目推进过程中,我经历了诸多技术层面的迭代优化:数据库表结构前后调整了十余个版本,API接口也从最初规划的60余个扩展至最终100+。由于课业时间限制,许多设计都留下了优化空间——比如在后期引入Redis缓存时,才发现部分接口设计时未充分考虑缓存键的规范性,导致缓存策略实施效果未达预期,也算是一个教训吧。不光如此,service层里也是有很多代码是很粗糙的,不过由于我的水平还不够,暂且就这样吧。
2025-05-11 20:02:36
1470
2
原创 WebSocket连接失败解决方案(前后端联调场景)
然后确保后端 WebSocket 接口路径同样包含项目上下文路径,保持前后端路径一致性。如果还解决不了的并且搜索了很多解决方案都未能解决的,请检查是否是后端版本兼容性的问题!ws://localhost:80/{项目名称}/webSocket/1。在前端的 WebSocket 连接地址中加入项目上下文路径。(请将 {项目名称} 替换为实际部署的上下文路径)
2025-04-07 23:27:18
682
原创 C++期末大作业:俄罗斯方块(附源码详解及美工素材)
俄罗斯方块相信大家都玩过,本游戏也是采用了经典的俄罗斯方块游戏规则:按方向键← →进行左右移动,↑ 进行方块的顺时针旋转,↓进行方块的迅速下落,消行可获得分数,累计获得一定分数可进入下一关,下落速度也会随之变快。本项目使用的是EasyX图形库。那废话不多说,下面就进行代码实现吧。
2025-03-07 23:15:30
2235
4
原创 项目:苍穹外卖(附源码)
由于我需要在本项目中跳过支付功能的实现,因此必须对微信支付的时序图有清晰的理解,以便能够做出合理的修改和调整。首先,项目中最大的问题之一就是涉及到多表查询的部分。主要工作集中在一些典型的CRUD操作,但因为数据关系较为复杂,一些重复性的操作也需要精细化处理,保证代码的高效与可维护性。对用户浏览过的信息进行Redis缓存,减轻数据库负担,同时商家对相关信息进行修改时即刻对客户端缓存进行清理,确保信息的实时性和准确性。提供订单状态的实时更新功能,并且超过支付时间未支付的订单会自动取消,确保订单处理的及时性。
2025-02-18 14:47:35
5219
原创 项目:教学后台信息管理系统(附源码)
历时半个月,此项目也终于是完成了,这是我完成的第一个真正意义上的Java项目,也算是正式入门了Java领域吧。这个项目的业务功能很基础,旨在熟悉企业开发流程规范以及前端开发,后端基本是一帆风顺地写完了,最耗时的反而是前端,因为我是第一次接触前端,所以在敲前端部分的代码时真的是BUG频出,十分头疼。好在最后还是顺利地完成了,可喜可贺。~~码文不易,留个赞再走吧~~
2025-02-09 14:46:15
824
1
原创 有关IDEA中Lombok失效、找不到符号问题的解决方案
例如@Data、@NoArgsConstructor 、@AllArgsConstructor,得自己手动添加getter、setter方法。于是我便在网上寻找方法,发现出现相同问题的远不止我一个人,我将网上提供的解决方案都试了一遍。ps:在指定完版本后记得刷新,并运行一下Maven自带的clean和complie插件。还有@Slf4j,在程序运行时会报找不到符号的错误,导致无法顺利运行程序。我在使用IDEA时发现Lombok失效,很多相关注释无法使用。其原因不详,但在指定版本后以上问题都完美解决。
2025-01-22 19:58:51
681
1
原创 记录:IO流大作业——每日一记
在开始说明项目实现过程之前,让我们先对本次项目主要使用到的IO流进行简单的讲解吧。IO流在 Java 中,IO流(Input/Output streams)用于处理数据的读取和写入。字节流字符流缓冲流转化流对象流打印流压缩流&解压流字节流字节流(Byte Stream)是 Java 中用于处理 所有类型数据(如文本、图片、音频等)的输入输出流。字节流以 字节 为单位进行读取和写入,不会对数据进行编码或解码,因此适用于任何类型的数据。字节流的主要类。
2024-12-25 14:55:02
1073
1
原创 记录:Java阶段性项目(拼图小游戏)
演示如下:这个项目是一个拼图小游戏,这个项目有以下几个部分组成:登录界面注册界面游戏界面而这三个界面的搭建则分别由以下步骤实现:登录界面:界面初始化密码解密功能的实现验证码的生成确认输入正确性功能的实现注册界面和游戏界面的跳转注册界面:界面初始化密码解密功能的实现重置功能的实现记录用户数据确认输入正确性功能的实现返回登录界面功能计时器的实现游戏界面:界面初始化菜单栏初始化拼图的生成以及载入选择图片功能的实现移动图片功能的实现计步器功能的实现胜利条件的判断。
2024-12-05 17:01:56
2385
12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人