- 博客(172)
- 收藏
- 关注
原创 Spring Cloud & 以Gateway实现限流(自定义返回内容)
Spring Cloud Gateway 提供了基于 Redis 的请求限流方案,通过 RequestRateLimiterGatewayFilterFactory 实现令牌桶算法。该方案与 Spring 生态无缝集成,适合基础限流需求。
2025-05-09 12:11:37
603
原创 Spring Cloud & 为Oauth2新增免密授权模式
免密授权模式是一种无需校验密码,仅凭账号或用户名即可获取访问令牌的授权方式。该模式在整合第三方授权(如微信、支付宝等)时尤为有用,避免了在已通过第三方授权的情况下仍需使用密码授权的复杂流程。特别是在使用Spring Cloud OAuth2时,由于密码通常采用BCrypt单向加密,免密授权模式可以避免从数据库中获取原始密码的繁琐操作。
2025-05-09 11:46:20
284
原创 Spring Boot & AOP实现动态数据脱敏
在对数据对象的字段进行反射遍历时,我们还需要考虑父类&嵌套对象的字段遍历。由于对象嵌套的层级可能非常深且还可能有相互嵌套的情况,因此在遍历&迭代时必须要限制层级以避免长遍历&死循环,以及还要尽可能避免不必要的遍历,例如原生/框架的类,从而尽可能的提升性能。关于这些问题在下文的代码中都有提及且处理,请仔细查看代码注释。下述代码对列表情况也做了处理。
2025-01-21 20:39:12
524
原创 分布式 & 一致性算法 & Raft & 总结
Raft @ 木筏是一种基于日志复制实现的分布式容错&一致性算法。在Raft算法之前,Paxos @ 帕克索斯算法一直是分布式容错&一致性算法的标准&代表。但Paxos算法的缺点也是十分明显的,即难以理解&实现。而Raft算法的设计目标便是为了简化Paxos算法,使得分布式容错&一致性算法能够以更加简洁易懂的方式呈现在开发者的面前。
2024-12-11 00:53:21
2269
原创 分布式 & 一致性算法 & Paxos & 总结
Paxos算法是目前公认解决分布式一致性问题的最有效算法之一,甚至可以说它是过去几十年里一切分布式一致性算法的源头。我们对Paxos算法进行描述时通常都会带上“容错&共识”两个关键字,那么它们具体代表的是什么呢?
2024-12-10 23:46:01
1442
原创 分布式 & 限流算法 & 漏桶 & 总结
LBA @ Leaky Bucket Algorithm @ 漏桶算法是一种流行于网络通信领域的流量控制/频率限制算法。漏桶算法的核心原理是通过一个概念上的“漏桶”来控制请求的访问频率,这个漏桶会在指定的容量范围内接收&保存所有的请求,并以指定的频率将请求渗出以允许其正式访问系统,从而达到持续控制请求访问数量&频率的效果。
2024-12-10 23:32:46
571
原创 分布式 & 限流算法 & 令牌桶 & 总结
TBA @ Token Bucket Algorithm @ 令牌桶算法是一种流行于网络通信领域的流量控制/频率限制算法。令牌桶算法的核心原理是通过一个概念上的“桶”来控制请求的访问频率,这个桶中会保存一定数量的“令牌”,每个请求只有获得令牌后才能正式访问系统,否则就只能等待/放弃。而由于桶中的令牌会以固定的频率生成,因此令牌桶算法就可以达到持续控制请求访问数量&频率的效果。此外由于桶可以按配置预存一定数量的令牌,因此在日常请求访问频率 < 令牌产生频率的情
2024-12-10 23:27:10
664
原创 分布式 & 限流算法 & 窗口 & 总结
固定窗口算法是最简单的流量控制算法。固定窗口算法的核心原理是将系统的生命周期划分为一个个单位时间的固定窗口,随后再去限制这些固定窗口所能接收的请求数量。固定窗口算法通常在实现时会使用计数器去统计单位时间内已接收的请求总数,而一旦请求数量在下个固定窗口到来前到达阈值,那么系统就会拒绝掉后续的所有请求,直至下个固定窗口到来为止。 滑动窗口算法是固定窗口算法的优化版本,用于解决固定窗口算法的边界超频问题。
2024-12-10 23:19:28
1105
原创 分布式 & 分布式事务 & 总结
所谓分布式事务是指操作范围笼罩多个不同节点的事务。例如对于订单节点&库存节点而言,一次完整的交易需要同时调动两个节点。而如果将这个交易的所有操作作为ACID事务执行,那么该事务就被称为分布式事务。
2024-12-10 23:01:50
1253
原创 分布式 & CAP理论 & 总结
分布式的核心是将大型业务拆解成多个子业务以使之在不同的机器上执行。分布式是用于解决单个物理机容量&性能瓶颈问题而采用的优化手段,服务之间通过远程调用进行交流,从而协同工作以对外提供服务。所谓CAP理论指的是分布式系统无法在“读/写数据”时同时满足“一致性/可用性/分区容错性”三种特性,因此系统设计者必须在这三者之间做出权衡
2024-12-10 22:52:06
1571
原创 Java & 目录
《Java & Collection & 目录》《Java & Reference & 目录》《Java & Condition & 目录》《Java & AQS & 目录》《Java & Lock & 目录》《Java & Executor & 目录》
2024-11-04 12:29:35
234
原创 Java & Collection/Executor & SynchronousQueue & 源码
前言 相关系列《Java & Collection & 目录》《Java & Executor & 目录》《Java & Collection/Executor & SynchronousQueue & 源码》《Java & Collection/Executor & SynchronousQueue & 总结》《Java & Collection/Executor & Synchron
2024-11-04 11:56:08
258
原创 Java & Collection/Executor & SynchronousQueue & 总结
SynchronousQueue @ 同步队列类是BlockingQueue @ 阻塞队列接口的实现类之一,基于链表实现。同步队列类不允许存null,或者说阻塞队列接口的所有实现类都不允许存null。同步队列类是线程安全的,或者说阻塞队列接口的所有实现类都是线程安全的,其接口定义中强制要求实现类必须线程安全。同步队列类支持公平访问策略,即支持线程按到达顺序对同步队列进行访问,但默认是非公平的。同步队列类的迭代器是没有意义的。同步队列类虽然与阻塞队列接口一样都被纳入Executor @ 执行器框架的
2024-11-04 11:53:41
918
原创 Java & Collection/Executor & LinkedTransferQueue & 总结
LinkedTransferQueue @ 链接迁移队列类是BlockingQueue @ 阻塞队列接口的实现类之一,也是TransferQueue @ 迁移队列接口的唯一实现类,基于链表实现。链接迁移队列类不允许存null,或者说阻塞队列接口的所有实现类都不允许存null。链接迁移队列类是真正意义上的无界队列,即容量理论上只受限于堆内存大小。链接迁移队列类是线程安全的,或者说阻塞队列接口的所有实现类都是线程安全的,其接口定义中强制要求实现类必须线程安全。
2024-11-01 17:20:08
675
原创 Java & Collection/Executor & LinkedTransferQueue & 源码
【代码】Java & Collection/Executor & LinkedTransferQueue & 源码。
2024-11-01 17:18:32
405
原创 Java & Collection/Executor & DelayedWorkQueue & 源码
【代码】Java & Collection/Executor & DelayedWorkQueue & 源码。
2024-11-01 16:15:18
421
原创 Java & Collection/Executor & DelayedWorkQueue & 总结
延迟工作队列类是BlockingQueue @ 阻塞队列接口的实现类之一,基于数组实现。延迟工作队列类提供与延迟队列类一致的“延迟”功能,即元素只有在指定延迟时间到期后才允许被头部移除。延迟工作队列类不支持保存任意类型的元素,固定的Runnable @ 可运行接口泛型意味着其只能保存可运行。延迟工作队列类不允许存null,或者说阻塞队列接口的所有实现类都不允许存null。延迟工作队列类是无界队列,其最大容量理论上只受限于堆内存的大小。
2024-11-01 16:13:06
1050
原创 Java & Executor & ScheduledFutureTask & 源码
【代码】Java & Executor & ScheduledFutureTask & 源码。
2024-11-01 15:05:17
268
原创 Java & Executor & ScheduledFutureTask & 总结
ScheduledFutureTask @ 调度未来任务类是代理任务功能/任务/延迟/周期性的实现封装。
2024-11-01 15:03:40
796
原创 Java & Executor & ScheduledFuture & 源码
【代码】Java & Executor & ScheduledFuture & 源码。
2024-11-01 14:37:19
314
原创 Java & Executor & ScheduledFuture & 总结
ScheduledFuture @ 调度未来接口是代理任务功能/延迟性的概念封装。
2024-11-01 14:35:41
463
原创 Java & Executor & RunnableScheduledFuture & 源码
【代码】Java & Executor & RunnableScheduledFuture & 源码。
2024-11-01 14:23:12
292
原创 Java & Executor & RunnableScheduledFuture & 总结
RunnableScheduledFuture @ 可运行调度未来接口是代理任务功能/任务/延迟/周期性的概念封装。
2024-11-01 14:21:07
338
原创 Java & Executor & QueueingFuture & 源码
【代码】Java & Executor & QueueingFuture & 源码。
2024-11-01 14:04:52
289
原创 Java & Executor & QueueingFuture & 总结
QueueingFuture @ 排队未来类是由ExecutorCompletionService @ 执行器完成服务类内部实现的私有FutureTask @ 未来任务类子类,作用是借助未来任务类的自定义/钩子方法实现令任务在执行结束(完成/异常/取消)时自动加入[completionQueue @ 完成队列]的功能。
2024-11-01 14:03:03
753
原创 Java & Executor & ScheduledExecutorService & 源码
【代码】Java & Executor & ScheduledExecutorService & 源码。
2024-10-31 22:36:57
523
原创 Java & Executor & ScheduledExecutorService & 总结
ScheduledExecutorService @ 调度执行器服务接口定义了“调度”概念。调度执行器服务接口将“调度”概念细分为“延迟/周期”。
2024-10-31 22:33:35
934
原创 Java & Executor & ScheduledThreadPoolExecutor & 源码
(学习过程/多有漏误/仅作参考/不再更新)(学习总结/最新最准/持续更新)(学习解答/持续更新)
2024-10-30 16:15:53
342
原创 Java & Executor & ScheduledThreadPoolExecutor & 总结
ScheduledThreadPoolExecutor @ 调度线程池执行器类具备并发调度(延迟/周期)执行任务的能力。
2024-10-30 16:14:02
972
原创 Java & Executor & ThreadPoolExecutor & 源码
(学习过程/多有漏误/仅作参考/不再更新)(学习总结/最新最准/持续更新)(学习解答/持续更新)
2024-10-30 15:42:26
199
原创 Java & Condition & 目录
(学习过程/多有漏误/仅作参考/不再更新)(学习过程/多有漏误/仅作参考/不再更新)(学习总结/最新最准/持续更新)(学习总结/最新最准/持续更新)(学习解答/持续更新)(学习解答/持续更新)
2024-10-30 14:29:02
204
原创 Java & AQS & 目录
(学习过程/多有漏误/仅作参考/不再更新)(学习过程/多有漏误/仅作参考/不再更新)(学习过程/多有漏误/仅作参考/不再更新)(学习过程/多有漏误/仅作参考/不再更新)(学习过程/多有漏误/仅作参考/不再更新)(学习过程/多有漏误/仅作参考/不再更新)(学习过程/多有漏误/仅作参考/不再更新)(学习总结/最新最准/持续更新)(学习总结/最新最准/持续更新)(学习总结/最新最准/持续更新)(学习总结/最新最准/持续更新)(学习总结/最新最准/持续更新)(学习总结/最新最准/持续更新)(学习解答/持续更新)
2024-10-30 14:03:17
356
原创 Java & Lock & LockSupport & 源码
(学习过程/多有漏误/仅作参考/不再更新)(学习总结/最新最准/持续更新)(学习解答/持续更新)
2024-10-29 21:50:05
247
原创 Java & Condition/AQS & ConditionObject & 源码
(学习过程/多有漏误/仅作参考/不再更新)(学习总结/最新最准/持续更新)(学习解答/持续更新)
2024-10-29 21:45:33
208
原创 Java & AQS & 源码
前言 相关系列《Java & Lock & 目录》(持续更新)《Java & Lock & AQS & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Java & Lock & AQS & 总结》(学习总结/最新最准/持续更新)《Java & Lock & AQS & 问题》(学习解答/持续更新) 涉及内容《Java & Lock & Reent
2024-10-29 21:35:58
408
原创 Java & AQS & CountDownLatch & 源码
(学习过程/多有漏误/仅作参考/不再更新)(学习总结/最新最准/持续更新)(学习解答/持续更新)
2024-10-29 21:33:39
302
原创 Java & AQS & CyclicBarrier & 源码
(学习过程/多有漏误/仅作参考/不再更新)(学习总结/最新最准/持续更新)(学习解答/持续更新)
2024-10-29 21:31:11
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人