![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统设计
文章平均质量分 73
分享系统设计相关知识
MALE_2
做时间的主人
展开
-
Java 实现 跳表skiplist
文章目录定义节点类变量插入实现查找删除实现测试代码与结果完整代码地址github关于跳表的定义与用途,已经有很多不错的资料了,此篇文章主要是分享记录下Java实现定义节点@Data private static class SkipListNode { private int value = -1; // 节点的前一个节点 private SkipListNode backward; // 节点的下一个节点数组原创 2021-10-24 21:23:24 · 201 阅读 · 0 评论 -
限流算法-你了解多少
文章目录常见限流算法固定窗口滑动窗口漏斗算法令牌桶滑动日志限流总结分布式限流常见限流算法固定窗口滑动窗口漏斗算法令牌桶滑动日志分布式限流固定窗口固定窗口限流算法,是维护一个时间窗口和一个计数器,在这个时间窗口内,请求数达到一定的限制后,则不再接受请求,若检测到超过窗口时间,则将计数器置为0具体实现代码如下public class FixWindow implements LimitingAlgorithm { // 窗口时间,单位为ms private long原创 2021-10-16 17:40:20 · 237 阅读 · 0 评论 -
手撕三种分布式锁
为什么需要分布式锁锁的作用就是多个线程或者进程对同一份资源进行修改时,保证资源是被正确地修改,例如多个线程同时对一个数字加一,由于读取、修改、赋值,不一定是一个原子操作,需要锁来保证这一个过程的原子性分布式锁就是保证多个应用或进程对同一份资源进行操作时,结果的正确性分布式锁常见解决方案分布式锁需要具备的几个条件:互斥(必须):同一时刻,分布式部署的应用中,同一个方法/资源只能被一台机器上的一个线程占用锁失效保护(必须):出现客户端断电等异常情况,锁仍然能被其它客户端获取,防止死锁可重入(可选原创 2021-09-20 10:18:01 · 764 阅读 · 0 评论 -
如何设计一个简易的工单系统
需求背景先来看看业务整体结构图由于当前所在公司是做保险相关业务的,需要对接很多公司,下单的过程中,必须将数据成功传输到保险公司并得到返回才算成功,在这个交互的过程中,很容易因为保险公司系统处于升级,或者过于繁忙状态,或者其他原因,导致我们下单失败,所以我们需要一个系统来对这些承包失败的订单继续处理,重新承保或者退款。另外还有一些其他需要人工介入的操作,我们也需要将其视为一个工单来处理。以单个工单任务为例以承包失败为例流程与状态确定从业务流程可以看出,等待人工介入,是一个持续的过程,因此我们.原创 2021-07-26 16:19:56 · 2919 阅读 · 1 评论