大家好,我是Java烘焙师。本文结合笔者的经验和思考,对业务数据迁移做个总结。在业务系统迭代的过程中,难免会做数据迁移,可能是因为: 业务模型变更:实体关系变了 或者存储结构...
大家好,我是Java烘焙师。本文结合笔者的经验和思考,对业务数据迁移做个总结。在业务系统迭代的过程中,难免会做数据迁移,可能是因为: 业务模型变更:实体关系变了 或者存储结构...
大家好,我是Java烘焙师。今天不聊架构,介绍一下AI编程。 趁着假期和业余时间,研究了一下AI编程,并用Kiro、OpenCode,从零搭建了一个完整可运行的全栈项目,包括...
大家好,我是Java烘焙师,近半年重启了技术博客的更新,在春节前做个总结吧。 关于我:大厂架构师,有团队管理经验,热爱技术,平时喜欢思考总结。 写作初衷: 功在平时:定期把自...
大家好,我是Java烘焙师。本文结合笔者的经验和思考,对灰度方案做个总结,重点介绍AB实验。 灰度在开发流程中非常普遍。先做小流量验证,确认无误后再推全,灰度过程中一旦发现系...
大家好,我是Java烘焙师。后端程序员平时除了接触业务代码、中间件、存储等,也难免会跟数仓有交集。下面结合笔者的经验和思考,从后端程序员的视角看数仓、做个总结,后续再跟数仓/...
大家好,我是Java烘焙师。上一篇文章介绍了限流方案的使用和选型,本文接着讲限流算法的原理。常见的限流算法有:令牌桶、窗口计数、漏桶,前两种在实际使用中最常见,因此重点介绍。...
大家好,我是Java烘焙师。为了避免突增流量引起服务雪崩,需要对接口、存储资源做限流保护,根据系统负载情况设置合适的限流值。下面结合笔者的经验和思考,对主要限流方案的选型做一...
大家好,我是Java烘焙师。如何更新缓存和DB、做到性能和一致性的取舍,是一个很常见的话题。下面结合笔者的经验和思考,系统性地总结一下缓存更新模式,讲透讲明白。 1、旁路缓存...
背景 在跨系统之间的数据写入场景下,上下游系统极有可能因为网络超时/抖动、或写本地DB与调外部接口不能同时成功等原因,而出现数据不一致的问题,因此需要有及时发现不一致问题、并...
业务发展过程中,增加字段是很常见、频繁的,因此怎么存储新增的字段是要重点考虑的因素。下面结合笔者的经验,总结一下各种业务扩展模式选型的优缺点、适用场景,如何让系统保持良好的业...
背景 反射在Java中非常重要,是Java区别于其他编程语言的一大特性。Java中的AOP切面、动态代理等看起来像黑魔法一样的技术,就离不开反射、字节码等。这些技术能在不侵入...
正如飞机在起飞前,机长、副机长要过一遍checklist检查,确认没问题了才能起飞。楼主也整理了一个系统容量现状checklist,方便对照检查。本文搭配架构师必备:如何做容...
首先要回答一个问题,为何要使用HBase?随着业务不断发展、数据量不断增大,MySQL数据库存在这些问题: MySQL支持的数据量为TB级,不能一直保留历史数据。而HBase...
背景 有2种常见的多维度查询场景,分别是: 带多个筛选条件的列表查询 不含分库分表列的其他维度查询 普通的数据库查询,很难实现上述需求场景,更不用提模糊查询、全文检索了。 下...
结论 有以下几种Redis集群方案,先说结论: Redis cluster:应当优先考虑使用Redis cluster。 codis:旧项目如果仍在使用codis,可继续使用...
Spring cache是一个缓存API层,封装了对多种缓存的通用操作,可以借助注解方便地为程序添加缓存功能。常见的注解有@Cacheable、@CachePut、@Cach...
先说结论:本地缓存优先选用caffeine,因为性能比guava cache快,api风格与之兼容、能轻松地平滑迁移,并且在spring/spring boot最新版本中已经...
要在应用中做到幂等,其实并不难,本文尝试做一个系统性的总结,欢迎一起探讨。 什么是幂等 某个操作执行一次,跟执行多次的效果一样。幂等一词来自于数学中的幂等,即f(f(x)) ...
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。 1、QPS保障目...
本文介绍如何应用Canal实现异步、解耦的架构,后续有空再写文章分析Canal原理和源代码。 Canal简介 Canal是用来获取数据库变更的中间件。伪装自己为MySQL从库...