- 博客(311)
- 资源 (11)
- 问答 (4)
- 收藏
- 关注
原创 【JVM】(7)垃圾收集器ParNew&CMS与底层三色标记算法详解
本文介绍了JVM垃圾收集算法与收集器的选择策略。根据分代收集理论,年轻代采用标记-复制算法处理短暂存活对象,老年代则使用标记-清除或标记-整理算法。主流收集器包括:Serial(单线程)、Parallel(并行多线程)和CMS(减少停顿时间)。JDK1.8默认使用Parallel收集器,适用于2-3G小内存;大内存推荐CMS,8G以上建议G1收集器。不同场景需选择合适收集器,小内存Parallel效率尚可,大内存需优化用户体验。
2026-01-13 09:00:43
320
原创 【工业企业成本核算】作业成本法实操详解:以杯子制造商为例(料工费分摊全流程)
摘要:本文详细解析了杯子制造商的作业成本法计算流程。首先列出基础数据,包括生产工艺、成本投入、产量情况及完工系数。核心计算分为四步:1)计算在产品材料约当产量(87个);2)确定分配基数(587个);3)计算材料分配率(3.4071元/个);4)分摊材料成本(完工产品2203.58元)。随后延伸计算人工和制造费用成本,最终得出单位产品总成本约7.96元/个,600个完工产品总成本约4776元。同时说明ERP系统如何通过"配置-抓取-计算-输出"四步自动完成这些复杂计算,大幅提升成本核算效
2026-01-12 14:13:51
870
原创 【JVM】(4)JVM对象创建与内存分配机制深度剖析
本文摘要: 内存分配机制:指针碰撞用于连续内存分配,空闲列表记录碎片内存;TLAB为线程分配专属内存块,默认占伊甸园1%,失败时通过CAS在Eden区分配。 对象访问与存储:堆区Class对象是Java访问入口,方法区存储实际代码(C++对象);对象头包含元数据,指针压缩优化内存占用。 分配策略:对象优先分配至Eden区,大对象直接进入老年代;TLAB分配失败触发CAS机制。逃逸分析与标量替换可优化栈上分配,减少GC压力。 GC行为:Eden区满触发Minor GC,存活对象移至Survivor区;G1 G
2026-01-09 13:59:29
788
原创 【JVM】(3)JVM内存模型深度剖析与优化
本文介绍了JVM运行时数据区的内存模型及调优实践。核心分为三部分:1)运行时数据区包括堆(对象存储)、方法区(类信息)、栈(线程私有);2)JVM参数配置示例,重点说明元空间参数的设置建议(固定大小避免Full GC);3)高并发订单系统的调优案例,通过合理分配新生代/老年代内存(如3G堆中新生代占2G),减少对象进入老年代,从而降低Full GC频率。最终目标是优化内存分配,提升系统稳定性。
2026-01-08 11:49:34
753
原创 【JVM】(2)java类加载机制
本文解析了Java类加载机制的核心原理:1) 类加载采用双亲委派模型,依次通过Bootstrap、Extension和Application类加载器查找类;2) loadClass()方法默认延迟解析(resolve=false)以提升性能;3) 初始化阶段存在半初始化状态,可能导致字段值异常;4) Class.forName()会强制初始化类,可能引发内存安全问题;5) JVM通过沙箱机制限制"java"包名使用。文中通过代码示例展示了类加载器的层级关系、各加载器的工作目录,以及类加载
2026-01-08 10:14:28
332
原创 【JVM】(1)全面理解JVM虚拟机
本文介绍了Java类加载机制的核心内容:1)类加载器采用双亲委派模型,优先由父加载器查找类,未找到时才会自行加载;2)加载过的类会被缓存,避免重复加载;3)沙箱机制禁止自定义"java"开头的包名,确保系统安全。同时指出Tomcat打破双亲委派实现应用隔离,并简要说明了JVM内存结构、对象存储、锁机制和GC原理。文章通过工具演示了class文件结构和内存对象布局分析。
2026-01-08 10:14:12
241
原创 【mysql专辑】(2)mysql explain详解与索引最佳实践
本文介绍了MySQL索引优化的关键点,重点解析了EXPLAIN工具的使用方法。主要内容包括: 通过示例表展示了索引结构,强调理解B+树索引的重要性 详细解释了EXPLAIN结果中的关键列: id列:执行顺序 type列:访问类型(从最优到最差:NULL>system>const>eq_ref>ref>range>index>ALL) 重点分析了各种type类型的含义和使用场景 介绍了possible_keys和key列的区别,以及key_len的计算规则 强调了优化
2026-01-05 11:29:45
630
原创 【mysql专辑】(1)深入理解Mysql索引底层数据结构与算法
MySQL选择B+树作为索引结构的主要原因可以归纳为以下几点:1)相比二叉树和红黑树,B+树具有更低的树高,能有效减少磁盘I/O次数;2)B+树的非叶子节点只存储索引,叶子节点存储所有数据且通过指针连接,这使得节点能容纳更多索引元素(约1170个),大幅提升查询效率;3)B+树天然支持范围查询,通过叶子节点间的指针快速定位;4)InnoDB采用聚集索引(主键索引)存储完整数据行,二级索引存储主键值,既节省空间又保证一致性;5)联合索引遵循最左前缀原则,利用B+树的有序性实现高效查询。此外,整型自增主键能优化
2026-01-04 08:41:02
571
原创 seata分布式事务源码剖析跟读
没有这段服务发现代码,微服务就无法知道 Seata Server 的地址,无法建立通信,分布式事务(如 @GlobalTransactional 注解标记的事务)就无法生效。这里的globalTransactionScanner是用来做全局事务注解扫描的,用于扫描应用中标记了 @GlobalTransactional 注解的方法,触发全局事务的开启、提交或回滚,实现跨服务的分布式事务一致性。下载seata源码,找到server目录下的,就是seata的服务端tc,他就是个springboot应用。
2025-12-26 11:20:03
232
原创 seata at模式设计思路剖析
若第二阶段TM发送提交请求时出现网络波动,可能部分RM收到请求并提交,另一部分未收到请求而放弃事务,最终导致数据不一致。TM通知所有RM“准备提交事务分支”。以MySQL为例:此阶段SQL会执行,但事务不提交,数据库连接/资源也不会释放。TM是协调核心:若TM故障(尤其是第二阶段),所有RM会一直阻塞,停留在锁定资源的状态,无法继续操作。参与的RM会在第一阶段锁定资源,直到事务提交(commit)才释放,期间处于阻塞状态。同时,2PC的全局事务ACID特性,依赖于各个RM的事务分支的ACID特性共同构成。
2025-12-25 14:11:38
210
原创 sqlserver 根据中文名称查询英文字段名称
由于数据库中字段很多是一样的,所以要规范命名,去查询之前的开发字段名称是怎么命名的,可以用下面的语句查询。
2025-12-25 09:50:49
142
原创 RocketMQ消息积压问题如何解决
紧急扩容清积压,优化消费提速度,控制生产防增量,监控预警早发现”。需结合业务场景选择合适的方案,优先通过架构优化(如增加队列、并行消费)从根本上提升消费能力,而非仅依赖临时扩容。
2025-10-21 09:57:47
475
原创 【Rocketmq】如何保证Rocketmq消息不丢失
生产端:确认发送成功 + 重试机制;Broker 端:持久化(同步刷盘)+ 主从同步复制;消费端:手动提交 offset + 重试处理 + 幂等性。需根据业务对性能和可靠性的要求,权衡配置(如同步刷盘 vs 异步刷盘)。
2025-10-21 09:55:39
714
原创 【RocketMQ】RocketMQ原生 API 实现的分布式事务完整方案
该方案可直接用于电商下单-扣库存等核心场景,如需扩展其他服务(如支付、物流),只需新增对应的消息消费者并保证幂等性即可。
2025-10-17 16:25:09
450
原创 RocketMQ 集群搭建步骤
以上步骤完成后,你将拥有一个高可用的 RocketMQ 集群,包含 3 个 NameServer 节点和 2 组主从架构的 Broker 集群。
2025-10-17 08:14:26
378
原创 偏向锁撤销(Biased Lock Revocation)
定义:偏向锁撤销是JVM在“多线程竞争已偏向的锁”时,取消锁的“单线程偏向状态”,并切换为轻量级/重量级锁的过程;本质:是偏向锁“从优化单线程场景”向“适配多线程竞争场景”的“妥协机制”;核心矛盾:撤销的目的是保证并发正确性,但频繁撤销会引入STW和锁膨胀开销,因此偏向锁仅适合“单线程重复持有锁”的场景。理解偏向锁撤销,本质是理解JVM锁优化的“场景适配性”——没有一种锁是万能的,偏向锁、轻量级锁、重量级锁的切换,都是JVM根据实际竞争情况动态平衡“性能”与“正确性”的结果。
2025-09-09 14:11:09
572
原创 《高并发优化》核心总结
该文档围绕高并发场景下的系统优化展开,涵盖性能优化核心方案、后端架构各层技术要点、电商业务优化实践及数据库并发问题解决策略。
2025-09-08 11:26:47
838
原创 Activiti 7表结构解释
act_re_*前缀区分功能re(Repository,流程仓库)、ru(Runtime,运行时)、hi(History,历史)、ge(General,通用),通过前缀可快速判断表的用途;运行时vs历史ru表数据是“临时的”(实例结束后清理),hi表数据是“永久的”(用于归档),二者配合实现“高效运行”与“完整追溯”;核心依赖关系:流程实例()是核心,任务(ru_task)、变量(hi_varinst)均关联实例ID,形成完整的数据链路。
2025-09-03 14:18:51
977
原创 Java团队项目开发规范——对象分层规范
本文介绍了系统分层架构和对象命名规范,将系统划分为Controller层(接入层)、Service层(业务逻辑层)和Domain层(领域层)。Controller层采用CQRS模式,分为Command(命令接口)和Query(查询接口),并规范了命名方式(如AddUserCommand、ListUserQuery)。Service层统一使用Dto对象,Domain层包含与数据库对应的Entity对象。强调层间对象必须通过ConvertUtil工具类进行转换,禁止跨层直接使用。文章还说明了各层对象的存放包路径
2025-08-18 14:15:39
390
原创 【DevOps】SonarQube代码质量分析工具方案
SonarQube是一款B/S架构的静态代码分析工具,支持20+编程语言。它通过7个维度检测代码质量:复杂度、重复代码、单元测试、代码规范、注释率、潜在Bug和结构设计。支持多种客户端分析方式,可与Jenkins集成实现自动化检查。本地开发可使用SonarLint插件进行预检,流水线部署时设置质量阈值拦截不合格代码。方案包含规则配置、本地扫描、质量阈值设置、误报处理等完整流程,构建从开发到部署的全链路代码质量管理体系,有效提升代码质量。
2025-08-18 14:11:24
520
原创 【Kubesphere】K8s容器无法访问内网xx网络问题
Kubesphere中运行的一个容器,可以ping通我们公司内网网段172.16.XX.XX,但是在容器内无法ping通192.168.5.XX,但是我在宿主机是可以ping通192.168.5.XX,这个192.168.5.XX是通过VPN设备接进来的,所以可以在公司电脑或者我的宿主机直接ping通,但很奇怪在宿主机运行的docker容器却没办法ping通。以下是我宿主机的docker网桥信息 用的都是默认的。以下是我宿主机的docker网桥信息 用的都是默认的。问题遇到的现象和发生背景。
2025-08-18 14:06:51
722
原创 基于KubeSphere的Kubernetes生产实践之路-起步篇
本文介绍了基于KubeSphere的中小规模Kubernetes生产环境部署方案。该方案采用云上虚拟机部署,包含Kubernetes集群、存储集群和中间件集群三部分,其中Kubernetes集群使用KubeSphere v3.1.1和Kubernetes v1.20.4,通过3个Master节点和6个Worker节点实现高可用。存储集群选用GlusterFS,部署3个节点各配1T数据盘。中间件集群独立部署,包括MySQL主从、Redis哨兵、RocketMQ等组件。文档提供了详细的节点规划和配置说明,强调该
2025-08-18 14:04:24
995
原创 SpingCloud业务模块的DevOps实战
KubeSphere DevOps系统是基于Jenkins的CI/CD解决方案,专为Kubernetes设计,提供构建、测试、发布的全流程支持。系统支持插件管理、代码分析、依赖缓存等功能,兼容Harbor、GitLab等第三方工具。安装时需在集群配置中启用devops组件,通过修改YAML文件将enabled设为true。创建企业空间后,可进行资源配额、成员管理等配置。部署完成后,可通过kubectl检查pod状态验证安装。该系统为Kubernetes环境提供了一站式DevOps能力,尤其适合离线环境下的C
2025-08-18 13:56:47
385
原创 【K8s】harbor安装与推送镜像
本文介绍了在Kubernetes环境中使用Harbor作为私有镜像仓库的配置方法。主要内容包括:Harbor的安装与配置(基于Docker和Compose)、设置Harbor服务开机自启动、推送Docker镜像到Harbor仓库的详细步骤,以及解决K8S集群无法拉取HTTP镜像的问题。关键点在于需要在所有集群节点配置Docker的insecure-registries参数,并重启Docker服务。文章还提供了镜像构建、标记和推送的具体命令示例,以及通过K8S Dashboard查看错误的便捷方法。
2025-08-18 13:50:29
897
原创 【K8s】K8s 服务优雅下线调试记录
因为发生的概率也挺小的,但是我们的支付平台24小时都有支付过来,没有发布版本的窗口期,只能热更新。k8s准备删除老版本实例,当新的实例已经就绪的情况下,会自动删除老版本的一个实例,并且再次启动一个新版本的实例。重新发版本测试,新启动了一个实例,由于启动的就绪检查还没有通过,实例的状态为没有就绪。做每一件事情都是有前因后果的,我为什么要去调研优雅下线的解决方案,是因为一次线上发布版本的事故导致了订单数据没有存储。和上面一样的状态,主要对比下面jemeter的请求一直没有停止,并且没有产生异常的。
2025-08-18 13:42:51
520
原创 【K8s】SpringCloud - Nacos 结合 K8s 优雅关闭服务(平滑升级)
在生产环境中使用 springcloud 框架,由于服务更新过程中,容器服务会被直接停止,部分请求仍被分发到终止的容器,导致服务出现500错误,这部分错误请求数据占用比较少,因为Pod滚动更新都是一对一。因为部分用户会产生服务器错误的情况,考虑使用优雅的终止方式,将错误请求降到最低,直至滚动更新不影响用户。这里结合nacos使用来分析。
2025-08-18 13:41:22
813
原创 【MYSQL】MySQL高并发环境解决方案深度解析
轻量级Java框架,在JDBC层提供额外服务:透明化的数据库代理端:云原生数据库代理MySQL高并发环境解决方案是一个系统性工程,需要综合考虑业务特点、技术架构、团队能力等多个因素。没有银弹式的解决方案,只有最适合当前业务场景的技术选型。业务优先:技术服务于业务,不为技术而技术渐进演进:避免激进的技术变革,保证系统稳定性监控驱动:建立完善的监控体系,用数据说话持续优化:根据业务发展持续优化架构随着技术的不断发展,新的解决方案和工具会不断涌现,但核心的设计思想和原则是相通的。
2025-08-18 11:30:00
767
原创 企微用户部门同步HRS系统
本文档详细说明了方法的业务流程和实现逻辑。该方法负责将企业微信用户数据同步导入到HR管理系统中,包括员工信息、工作信息和任职记录的创建与更新。
2025-08-15 15:49:45
888
原创 git疑问,暂时记录
有时候把dev本地分支搞乱了,多出几个提交,好像在远程仓库,rebase dev到本地dev,就恢复了,然后再把我开发分支合并过去就ok,就不会多出几个重复的提交。
2025-08-15 14:33:09
190
原创 【MySQL】MySQL聚集索引与非聚集索引深度解析
索引是数据库管理系统中一种重要的数据结构,它为表中的数据创建有序的访问路径,类似于书籍的目录。通过索引,数据库可以快速定位到所需的数据行,避免全表扫描,从而大幅提升查询性能。聚集索引(Clustered Index)是一种特殊的索引类型,其特点是索引顺序与表中数据的物理存储顺序完全一致。非聚集索引(Non-Clustered Index)是独立于数据存储的索引结构,索引顺序与数据物理存储顺序无关。聚集索引:数据即索引,索引即数据,查询效率高但每表只能有一个非聚集索引。
2025-08-12 13:53:41
1194
原创 【MYSQL】MySQL 锁机制与死锁处理深度解析
死锁是指两个或多个事务在执行过程中,因争夺资源而造成的一种互相等待的现象。应用场景推荐锁类型原因注意事项库存扣减排他锁(FOR UPDATE)防止超卖事务要短,及时提交余额查询共享锁(FOR SHARE)允许并发读,防止读脏数据避免长时间持锁批量导入表写锁(WRITE)保证数据一致性选择业务低峰期报表生成表读锁(READ)保证报表数据一致性使用只读副本更好范围统计临键锁防止幻读考虑使用快照读高并发插入插入意向锁提高并发性能避免间隙锁冲突。
2025-08-12 13:46:32
836
原创 【MYSQL】 深入理解MySQL事务隔离级别:从理论到实践
从理论上来说,事务应该彼此完全隔离,以避免并发事务所导致的问题。然而,完全隔离会对性能产生极大的影响,因为事务必须按顺序运行。在实际开发中,为了提升性能,事务会以较低的隔离级别运行。事务的隔离级别可以通过隔离事务属性指定,这是一个在数据一致性和系统性能之间的权衡。理解事务隔离级别是数据库开发的基础技能之一。在实际开发中,我们需要根据具体的业务场景来选择合适的隔离级别,在数据一致性和系统性能之间找到最佳平衡点。没有银弹,只有最适合的解决方案!🎯。
2025-08-12 11:48:05
847
原创 【AIGC】flux-dev人台服装lora模型训练
本文介绍了在服装公司中,通过使用LoRA训练技术,将人台服装图片转换为真人模特展示的方法。相较于传统的平铺图,此方法能更好地保留服装细节,尽管上身部分可能存在失真。文章详细描述了图片处理、模型训练步骤,包括下载flux1-dev底模、配置训练环境、上传并标记图片等。通过高质量的数据集和flux模型的强大理解能力,训练出的模型效果显著,能够有效展示服装在真人模特上的效果。此外,文章还提到可以通过类似方法训练公司模特的人脸模型,结合服装LoRA,进一步提升展示效果。
2025-05-14 08:21:09
227
原创 微服务不注册到nacos的方法
引言:在开发中,有时候多个开发一起开发,可能会同时注册到dev环境中,这样可能会影响dev环境,那么在idea添加2个参数即可解决。
2025-05-08 14:35:42
728
原创 【软件部署安装】OpenOffice转换PDF字体乱码
将Windows的路径: C:\Windows\Fonts 的中文字体,如扩展名为 TTC 与TTF的所有文字上传到Centos服务器,在/usr/share/fonts目录新建chinese目录,将上述中文字体上传到/usr/share/fonts/chinese目录下。经分析发现,linux默认不带中文字体,因此打开我们本地的windows系统的TTF、TTC字体安装到centos机器上。ttmkfdir是用来搜索目录中所有的字体信息,并汇总生成fonts.scale文件的。
2024-10-08 14:07:14
1072
原创 【Vue】a-radio-group单选框数字与字符串回显问题
根据后端接口返回数字或字符串,来配置Ant Design of Vue中a-radio-group单选框的回显问题,注意value中的取值是不一样的。
2024-10-08 13:51:35
973
原创 封装提示词翻译组件
由于前期设计的提示词均是英文输入,后期用户要求增加中文提示词输入,这个需求更改有两个方法,一个是修改comfyui工作流,另一个是修改前端,在前端将用户输入的中文翻译成英文,再推送到工作流中运行。argos-translate 是一款基于OpenNMT(神经网络机器翻译框架)的离线翻译库,不依赖第三方翻译接口,支持翻译包括中文在内的 30 多种语言。考虑到工作流功能较多,修改工作流也较为麻烦,本章选择修改前端的方式,封装一个前端vue翻译组件,实现提示词翻译功能的复用。
2024-09-27 15:07:17
1446
Android自定义注解实现View绑定Demo
2020-03-20
AIDL跨进程调用Demo
2020-03-18
K8S-docker容器内网网络问题如何解决?
2022-06-01
根据用户token 判定他的角色与权限,然后给他返回不同的数据
2020-10-30
tablayout+viewpager+fragment动态刷新数据源怎么做?
2020-06-10
关于json转换成能够在jsp显示的数据类型
2017-02-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅