
项目实战
文章平均质量分 71
wtr-win
这个作者很懒,什么都没留下…
展开
-
缓存一致性保障方案
读写策略写:1)更新DB。2)databus监听变更3)查询主库。4)更新缓存。读:读取缓存,缓存读取不到直接返回不存在或者走DB(根据缓存类型来确定,关键信息或者低频缓存可以在缓存中不存在时降级走DB)。一致性保障:1)60s实时检查数据修复。2)JOB增量区间检查修复。3)JOB每晚全量覆盖更新。问答:问题一:监听到DTS消息后更新缓存不加锁是否会造成数据不一致?通过将DTS的分片字段指定为缓存的key,这样DTS发送的数据将严格按照Binlog的事件顺序进行发送,最后在通原创 2021-09-15 20:17:47 · 247 阅读 · 0 评论 -
【多线程实战】-多线程实战系列文章汇总
多线程实战系列文章汇总原创 2020-11-08 00:07:24 · 262 阅读 · 0 评论 -
手把手教你去除项目中的重复代码(三)---模板+策略模式消除 if…else 和重复代码
一. 前言 在实际业务开发中,常常面临多个条件判断的情况,如果不加思索就写代码,很容易出现一堆if else 的代码,导致代码逻辑不清晰,可阅读性很差。我们经藏会在项目中见到大片大片的if else,给后来人带来很大的理解成本。 过多的if else ,这是很明显的坏代码的味道,这时就应该考虑自己的设计是否合理,有没有更好的表达方式了。二. 实战下面是一个最常见的不同等级的用户采用不同的处理方法的例子普通用户需要收取运费,运费是商品价格的 10%,无商品折扣;VIP 用户同样需要收取商品价原创 2020-11-01 16:17:14 · 868 阅读 · 0 评论 -
手把手教你去除项目中的重复代码(二)---注解+反射实现通用的日志打印功能
上篇介绍了通过注解+反射来去除接口中通用的处理逻辑,今天继续时用这个方式,实现通用的日志监控功能。一.实现首先,定义一个自定义注解 Metrics,打上了该注解的方法可以实现各种监控功能:@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.TYPE})public @interface Metrics { /** * 在方法成功执行后打点,记录方法的执行时间发送到指标系统,默认开原创 2020-11-01 14:54:26 · 363 阅读 · 0 评论 -
手把手教你去除项目中的重复代码(一)---注解+反射处理接口通用逻辑
通过注解+反射的模式实现接口通用逻辑的处理。同时针对不同的参数类型还是使用了策略枚举的模式来优化代码。原创 2020-11-01 13:15:10 · 864 阅读 · 1 评论 -
【Spring】注解(AOP)不生效原因分析以及解决方案
一 问题我们在是用spring的注解时,稍不注意就很有可能会遇到注解没有生效的情况,比如下面这段代码import org.springframework.stereotype.Component; @Componentpublic class HelloService { @Transactional public void sayHi(String msg) { //数据库操作 doSomethingInDB(); Sy原创 2020-10-27 21:05:28 · 13425 阅读 · 2 评论 -
【Redis项目实战 一】缓存穿透,缓存击穿分析以及实际代码解决方案
缓存穿透、热点缓存失效、以及缓存更新时一致性问题分析以及解决方案原创 2020-09-12 20:45:04 · 585 阅读 · 0 评论