数据源切换步骤
在系统进行重写或重构时,有时会伴随着数据库数据源的切换,最常出现的即是从旧MySQL数据库迁移到新MySQL数据库,且新旧库表结构可能发生一些变化。 迁移可分为: 停机迁移 不停机迁移 其中,对单个系统的数据源做不停机迁移的步骤如下:
在系统进行重写或重构时,有时会伴随着数据库数据源的切换,最常出现的即是从旧MySQL数据库迁移到新MySQL数据库,且新旧库表结构可能发生一些变化。 迁移可分为: 停机迁移 不停机迁移 其中,对单个系统的数据源做不停机迁移的步骤如下:
现象 修改表字段长度导致超时。 原表结构该字段为: `note` varchar(45) CHARATER SET uft8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注' 修改sql: ALTER TABLE xxx MODIFY COLUMN note varchar(63) DEFAULT '' COMMENT '备注...
现象发现异常日志文件里有很多nullPointException,只有简单的异常名称,却没有堆栈信息。(已确认代码中日志打印方式正确) 原因jit本身的优化,没有记录trace “JVM对一些特定的异常类型做了Fast Throw优化,如果检测到在代码里某个位置连续多次抛出同一类型异常的话,C2会决定用Fast Throw方式来抛出异常,而异常Trace即详细的异常栈信息会被清空。这种...
分布式缓存主要用于查询场景,缓解DB压力,针对不同的一致性要求分为两种缓存场景: 最终一致性分布式缓存 强一致分布式缓存 CAP中的C表示的是多副本一致性 ACID中的C表示的是动作一致性,比如A给B打钱 最终一致性分布式缓存 最终一致性对一致性要求不高,可以采用异步更新的方式避免业务系统阻塞。 采用旁路缓存模式,先去缓存获取数据,存在则直接返回,不存在去读DB,然...
使用Spring Event机制可以保证高扩展性: 使用Spring Event来发布应用内部领域事件,对于事件监听器可通过注解或类的方式来扩展,Spring Event内部使用观察者模式,但api使用层面可以完全解耦事件发布和事件监听: 常用方式: @Component @Slf4j public class ClazzHourEventListener { ...
Externalized Configuration 优先级,序号越小优先级越高,优先级为1的会覆盖优先级为17的 Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties when devtools is active). @TestProperty...
现象 MySQL版本5.6.16,隔离级别:RC SHOW VARIABLES LIKE 'version%'; SHOW VARIABLES LIKE 'tx%' 死锁日志: ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2024-01-03 18:51:47 7f704...
现象 应用代码如下: Test test = new Test(); test.setA(1); test.setB("1"); log.info("before modification: {} \t ",test); test.setA(2); test.setB("2"); ...
基础 Java运行时内存结构 JVM在执行Java程序时会将它管理的内存划分为不同的数据区域: - 程序计数器:用于存放下一条指令所在单元的地址的地方。每执行一条指令,程序计数器就会加一。每个线程都会维护一个独立的程序计数器且各线程之间的程序计数器互不影响,在程序执行过程中,线程会不断的切换,独立的线程计数器保证了当前线程的正确执行位置。程序计数器是唯一一个不会出现OutOfMem...