Home
Neil Blog
Cancel

Redisson源码解读-分布式锁

1 概述 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。 其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Sema...

周期扣款(自动续费)

场景 连续订阅服务(会员到期自动扣费) 先享后付(乘车码) 模式 以支付宝周期扣款为例 独立签约后扣款 用户现在签约页面进行签约,待签约生效后,商家按照签约协议规则进行扣款 页面流程 业务流程 支付并签约 用户在支付流程中,同时完成支付和签约。待签约生效后,商家可以按照协议中的时间进行扣款。 页面流程 业务流程 后续解约&扣款...

OAuth2.0协议-基础篇

概念 The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval i...

责任链模式 (Chain of Responsibility)

定义 将请求沿着处理者链进行发送,收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者 真实世界类比 访问一个秘密基地 当去访问一个秘密基地时,一路上你会遇到很多关卡,每一个关卡都会核验你的身份信息和权限,只要有一个关卡不让通行,你就将停止前行。 场景 当一个请求打过来的时候,希望你对该请求进行验证 会有不同的验证规则 当不符合某一个规则时,即失败 ...

Mysql最左匹配原则

前言 如果问你mysql最左匹配原则是什么?我们大部分人都会脱口而出:在组合索引时,满足最左优先,从左往右匹配,遇到>、<、>=、<=、between、like就会停止匹配。然而真的是这样吗? 实验 准备 新建表:mysql_index_test 字段: 联合索引:B+tree索引,字段a和b是联合索引,字段c和d是联合索引 测试数据: Query...

策略模式(Strategy)

定义 定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换 真实世界类比 百度地图计算路线 百度地图app计算两地点之间的路线,可以选择骑行、自驾、公共交通等方式,不同的方式,计算的结果都不相同。 场景 设计一款地图app 根据不同的出行方式,计算出不同的结果 支持多种出行方式组合计算 便于以后扩展 类图 实现 MapRouteCo...

模板方法模式(Template Method)

定义 在一个方法中定义一个方法骨架,而将一些步骤延迟到子类中,子类可以在不改变算法结构的情况下,重新定义其中一个或多个步骤 真实世界类比 怎么泡一壶茶?怎么泡一杯咖啡? 把水煮沸 用沸水浸泡茶叶/用沸水冲泡咖啡粉 把茶倒进辈子/把咖啡倒进杯子 加柠檬/加糖和奶 过程泛化后: 把水煮沸 冲泡 把饮品倒进杯子 加调料 模板方法就是一组步骤组...

七大原则

懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要 目的 编写软件过程中,我们会面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好: 代码重用性 (即:相同功能的代码,不用多次编写) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 可扩展性 (即:当需要增加新的功能时,非常的方便,...

命令模式(Command)

定义 将请求封装成对象,以便使用不同的请求、队列或日志来参数化其他对象,同时也可执行撤销操作 真实世界类比 餐厅是怎么工作的? 顾客点完订单,把订单交给服务员 服务员接过订单,并将订单交给后台厨师 厨师根据订单开始备餐备餐 整个流程中: 订单:订单就是一个点餐请求对象,并且可以被传递,从服务员传递到厨师手中 服务员:服务员的任务就是接收订单、通知厨师备餐 厨师:最终...

单例模式(Singleton)

天无二日,国无二主 定义 确保一个类只有一个实例,并提供一个全局的访问点。 使用场景 只需要有一个对象:线程池、数据库连接池、缓存、日志对象、处理偏好设置和注册表对象、任务管理器等 特点 优点: 节省内存空间 避免频繁创建销毁对象,减轻GC工作,提高性能 为整个系统提提供了一个全局访问点 缺点: ...

Trending Tags