首页
Oriental Ming
取消

Spring 事务

Welcome 本文主要做笔记,加深对 Spring 事务的理解。内容主要有三点: 源码原理 传播机制 失效场景 1. 源码原理 Spring 事务是在数据库事务的基础上进行了封装扩展,主要特性如下: 支持原有数据库事务的隔离级别,新加入事务传播机制 提供多个事务的合并或隔离功能 提供声明式事务,让业务代码与事务分离(AOP) ...

MySQL 事务

Welcome 本文主要做笔记,加深对 MySQL 事务的理解。内容主要有三点: MySQL 事务隔离机制 锁机制 MVCC(Multi-Version Concurrency Control) 多版本并发控制隔离机制 注意:MySQL8.1.0 作为演示环境。 1. MySQL 事务 数据库为了解决多事务并发问题,设计了事务隔离机制、锁机制、MVCC隔离机制...

数据库备份策略

Welcome 系统不可避免会出现意外情况,如果出现意外情况如何能尽快的恢复到正常情况,其中数据的备份策略至关重要! 1. 两大方式 1.1 定义 冷备份 也称为 静态备份, 将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。 热备份 也称为 动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库的数据文件备份出来。 ...

Java 并行 Util

Welcome 在实际的生产开发环境中,有时会遇到需要简易并行处理的场景。譬如, 多项任务之间有几点共性: 具有相同/类型的返回结果 任务与任务具备隔离性(相互没有影响) 每项任务的执行都比较耗时 示例如下: // 批量保存 xxxx 对象。 耗时:5s boolean res1 = service1.saveBatch(xxxx); // 批量更新 yyyy 对象。...

Spring线程池配置

Welcome 提供一个可供参考的线程池配置。重点是对线程数量的配置和拒绝策略的制定。 1. 线程数配置策略 线程池的理想大小取决于被提交任务的类型以及所部属系统的特性。 在代码中通常不会固定线程池的大小,而应该通过某种配置机制来 提供,或者根据 Runtime.availableProcessors 来动态计算。 幸运的是,要设置线程池的大小也并不困难,只需要避免“过大” 和 “过...

List<Map>合并(Java Stream)

Welcome 借助 JDK(version&gt;7) Stream 的便利性,对两个 List&lt;Map&gt; 依据业务要求进行合并。 依据业务主键(id 或 code 或 xxx)对值对象进行合并。 1. 样例数据 // ============== new三条源数据,value值均为一个字,加入list ================== Map&lt...

锁(Java synchronized)优化增强

Welcome synchronized关键字往往是java中在处理高并发时的首选,尤其是JDK6之后,对synchronized不断的优化,提供了三种锁的实现,包括 偏向锁 ⋙ 轻量级锁 ⋙ 重量级锁,还提供了自动的升级和降级机制,使synchronized的性能得到极大的提升。 秉承废话不多说的规则,咱们开始… 1. 原理 — 锁对象探究 锁 ...

锁(Java)性能探究

Welcome 出于对 Java 锁的性能好奇,决定对锁使用的多种场景进行性能测试研究。 其中包括 synchronized、StampedLock 和 ReentrantLock 情况的研究。 1. 测试环境 环境 备注 JDK 版本 8 OS ...

Linux 查询技巧

收集整理出一些在运维时常用的查看技巧。后续会对内容再补充完善。 1. 查本机外网 IP # 可能需要等待 2秒钟左右 😜 curl ifconfig.co 2. 查 PID 文件启动位置 # 先查 PID。例:某个正在启动的 jar 包 PID ps aux | grep java # 获取到 PID 之后(假设:188),查看文件位置 ll /proc/188 ...

Linux 文件处理技巧

收集整理出一些在运维时常用的文件处理技巧。后续会对内容再补充完善。 1. 清理 nohup.out 生产中因为长时间不处理nohup.out文件,导致文件会特别的大,在查询日志等方面会非常的不方便。在 清理nohup.out文件时保持程序的正常运行就显得比较重要了。 ⚠️ 注意:如果应用本身有日志记录策略,则在启动时完全可以不输出 nohup.out 文件 😁 #...