自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 慢接口梳理

这是一个商品店铺管理系统的接口调用流程图,主要包含两个核心接口:店铺商品查询和商品详情查询。系统通过多层嵌套调用实现功能,涉及数据库查询、RPC远程调用和缓存处理。商品详情查询流程尤为复杂,包含多达10层的嵌套调用,涉及供应商信息、价格结算、品类管理等多个模块的数据获取,并通过批量查询和缓存机制优化性能。系统架构呈现典型的分层服务设计,各模块通过接口隔离,但存在较深的调用链问题。

2025-08-14 15:10:20 58

原创 定时任务学习

主要有三种方式适用于定时任务,不间断的。

2025-08-13 14:32:21 181

原创 品牌方和经销商映射关系的嵌入

本文介绍了在商品价格计算系统中实现经销商到品牌方映射关系的开发方案。主要内容包括:1) 在价格查询和属性查询两个核心接口中增加映射逻辑;2) 通过skuCarrierType和skuCarrierId识别供应商类型,并调用CustomSpecSyncSupplierMappingMapper接口查询品牌方ID;3) 根据不同的sku-mdmcode对应关系(1:N或1:1)采用差异化的处理策略;4) 对查询结果进行品牌方ID替换,保持原有业务逻辑不变。该方案实现了在价格计算过程中自动将经销商信息转换为品牌方

2025-08-11 13:26:26 698

原创 转换比逻辑

该摘要描述了SKU转换比计算的逻辑流程:首先通过SKUID查询SKU信息,解析其中的weightAppearanceDto;然后设置步长和转换比规则,包括从category_unit_rule获取规则值。流程涉及多个数据库表查询(如spec、attr等)和Apollo配置(ratioFetchExpMap、attrRegexMap),通过正则匹配判断规格值是否有效,最终计算出转换比。若中间步骤失败则返回提示信息或空值。流程图展示了完整的数据流转和处理过程。

2025-08-11 13:21:31 342

原创 失败自动重试策略

本文提出了一种经销商品牌方映射关系的自动同步与失败重试机制。方案将原有逻辑封装为定时任务,通过TaskHelp构建同步任务并记录到数据库。当首次同步失败时,系统会记录任务并加入自动重试队列。定时任务会轮询处理失败任务,若重试次数超限则标记为无效。该机制通过RPC调用获取供应商信息,智能判断并维护映射关系,确保数据一致性。文中附有流程图说明任务处理流程,包括正常执行路径和异常重试路径。

2025-08-11 13:16:42 481

原创 20250707-自定义规则同步需求需求理解

的计价规则需要保持一致。目前。

2025-08-05 16:30:41 261

原创 sql调优总结

摘要:SQL查询性能优化需重点关注索引使用、查询语句和数据库设计。常见问题包括:未命中索引导致全表扫描、低效查询语句(如SELECT *、复杂JOIN、深层子查询)、索引失效(如函数操作、模糊查询)以及表结构不合理。优化方法包括添加索引、遵循最左前缀原则、避免索引碎片化、合理设计表结构等。同时需关注数据库配置状态(统计信息、资源限制)和硬件环境(磁盘IO、内存)。通过EXPLAIN分析执行计划,针对性优化可显著提升查询效率。

2025-08-05 15:25:43 759

原创 算法学习--持续更新

完成:快速排序、快速排序基数优化、尾递归优化快排快速排序基数优化:注意,后续不变。有一个取中位数的新方法left要与mid交换,后续直接依旧用left做基准。可一直用left做基准,通过修改left所对应的值来优化代码。尾递归优化:排序算法的选择注意是。

2025-06-01 15:06:42 1211

原创 RabbitMQ的简介

消息队列是一种常见的异步通信机制,涉及生产者、消息代理和消费者三个核心概念。生产者负责发送消息,消息代理(如RabbitMQ)负责存储和转发消息,消费者则接收并处理消息。消息队列的传递方式主要有两种:队列(点对点)和主题(发布/订阅)。队列模式下,消息被消费者获取后即从队列中移除;主题模式下,消息会同时传递给所有订阅者。常见的消息中间件协议包括JMS和AMQP,其中AMQP支持跨语言和跨平台。RabbitMQ作为AMQP的实现,支持多种交换机类型(如direct、fanout、topic),并通过路由键和绑

2025-05-19 12:09:18 1220

原创 ReentrantLock与Synchronized 使用

ReentrantLock包含两个try Lock()方法:tryLock()tryLock(long timeout, TimeUnit unit)timeout为最长等待时间,TimeUnit为时间单位。

2025-04-02 17:34:46 1102

原创 Java不同进程间的通信方式

通过本地库(如POSIX共享内存)实现更直接的内存共享。通过HTTP协议发送请求和接收响应,适合微服务架构。使用restTemplate调用远程服务的URL,也可实现不同进程间的调用。通过远程对象调用实现请求-响应模式,进程间可像调用本地方法一样交互。方法将文件映射到内存,多个进程可读写同一文件实现共享。通过操作系统提供的命名管道文件实现无亲缘关系进程通信。适用于本地或远程进程间通信,支持跨平台。多个进程读写同一文件,需自行处理数据同步和锁机制。通过缓存服务器存储和获取数据,实现进程间共享。

2025-03-26 20:58:59 773

原创 哪些可作为可达性算法中GCroot对象?

这个方法会检查字符串常量池中是否已经存在相同内容的字符串,如果存在,就返回常量池中的字符串引用,否则,将字符串添加到常量池中,并返回新的引用。通过 JNI(Java Native Interface)调用的 Native 层(如 C/C++ 代码)中,若Native 代码通过。Native 方法的参数是 Java 对象时,JVM 会将其标记为 GC Root,直到 Native 方法执行完毕。加载后,这个类的Class对象可作为GC Root对象。调用 Native 方法时,Native 方法的。

2025-03-26 15:40:39 922

原创 内存泄漏以及ThreadLocal问题

线程池中的线程复用后,ThreadLocal 的值未被清理,长期占用内存。threadlocal的value为什么要用强引用而key用弱引用呢?

2025-03-26 11:29:39 489

原创 HashMap的扩容机制

HashMap在数组容量>=阈值threshold=tab.length*0.75(默认扩容因子)时,会对其进行扩容。通过**(e.hash & oldCap) == 0**来判断放到哪一个链表中去。将loHead插入newTab[j]低位中,将hiHead插入newTab[j + oldCap]高位中。若没有下一个节点,则直接通过**e.hash & (newCap - 1)**映射到新的数组中去。得到新的newCap和newThr后进行构建新数组,采用。至此完成newCap和newThr的赋值。

2025-03-25 21:39:11 2094

原创 MySQL的四种隔离级别和并发问题

Q:当A事务查询用户1的余额为100并扣费100,期间事务B对用户A执行了扣费50的操作。但是由于事务B开启时A事务并未提交,此时B读到的余额为100。例如,事务 A 修改了一条数据但尚未提交,事务 B 立即读取了这条数据,若A回滚,此时事务 B 读到的数据是“脏”的(即可能被回滚的数据)。当前事务的两次读取都只能看到当前快照的数据。必须等待事务A提交后才能执行,因此事务B无法在事务A的。事务在开始时锁定读取的数据,后续读取同一数据时会看到。此时 T2 读取到的数据是无效的(脏数据)。

2025-03-18 22:06:15 1613

原创 单线程的redis为什么需要分布式锁?

在学习redis过程中突然脑子传不过去了,想到这个问题。既然是单线程的,那么应该是按顺序执行的,为什么会出现并发问题呢?思考查找资料后想通了,记录学习一下。

2025-03-17 20:59:37 2007

原创 Java 8ConCurrentHashMap为什么线程安全?

存放的时候会将key.hashCode()映射到某个桶中去,同一个桶中所有Node的hash值都相等。若他的表头不为空,则调用**synchronized (f)**方法锁住头节点,执行链表或树的插入。判断当前值是否为null,不是的话返回 false,是的话更新为新的值。先看有无初始化桶数组Node<K,V>[] table,若没有则初始化。再看要存的桶,看他的表头是否为空,为空则用CAS插入。比如我存钱,我要看着我小猪里的钱是否像预期的那样加。简单来说put()操作加锁,get()不加。

2025-03-14 17:32:18 738

原创 关于删除模块后无法重新加入Ignore pom.xml。

当删除一model后,重新创建同名的model,maven会认为这个是刚才删除的,所以自动忽略。解决办法:setting->maven-->Ignored files。

2025-03-14 10:37:41 127

原创 redis的内存淘汰策略和过期策略区分及LRU和LFU的区别

内存淘汰策略是在时触发的,而过期键删除是常规的清理机制。

2025-03-14 10:36:03 411

原创 采用nacos负载均衡,不同服务间调用的权限验证问题。

服务间调用采用的restTemplate.getForObject(url,Result.class);存在问题:该方法需要取消某一接口的权限验证,容易数据泄露。解决:采用 restTemplate.exchange() 方法,方法内传输请求实体requestEntity,在requestEntity中加入请求头。生产者端可正常进行请求拦截和方法验证。

2025-03-11 15:45:21 179

原创 共享小窝项目中整合nacos做负载均衡,利用RestTemplate实现了服务的远程调用。问题及解决

3.此外发现在进行日志生成的时候调用的JWT的parseToken()方法,其方法会对token进行验证有无登录。2.调用后发现依旧无法访问---问题所在:appserver中开启了权限验证,每次请求会对用户信息进行验证。1.启动两个服务后发现对appserver的调用不生效。问题所在:@LoadBalance不生效---解决在子项目中引入。2.在父类的两个子项目中加入,并在启动类加入@EnableDiscoveryClient注解。key=value;4.在消费者服务的启动类中,加入。

2025-03-11 10:44:55 325

原创 springboot3+Nacos RestTemplate无法调用服务名,但ip+端口号可以的问题

版本号

2025-03-10 19:05:35 243

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除