- 博客(15)
- 收藏
- 关注
原创 常见的限流算法,以及实现思路(着重讲解滑动窗口限流)
那么,我们就可以把login接口这个需要做限流的资源名作为key在redis中进行存储,然后value我们现在ZSET这种数据结构,把他的score设置为当前请求的时间戳,member的话建议用请求的详情的hash进行存储(或者UUID、MD5什么的),避免在并发时,时间戳一致出现scode和memberv一样导致被zadd幂等的问题。7、滑动窗口限流:基于一个和固定大小的时间窗口,允许在该时间窗口内的请求数不超过设定的阈值,这个时间窗口随着时间的推移不断滑动,以适应不同时间段内的请求流量。
2024-02-18 18:54:25
1360
1
原创 二十三种设计模式,快速入门
客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上先看一张图将接口Interface1拆分成三个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则高层模块不应该依赖于低层模块,二者都应该依赖于抽象抽象不应该依赖于细节,细节应该依赖于抽象依赖倒置的中心思想是面向接口编程依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西是稳定的多。以抽象为基础搭建的架构比以细节为基础的要稳定的多。
2022-10-01 10:36:39
237
原创 如何确保消息不被重复消费?或者说如何保证消息的幂等性?
举个例子。比如一个项目中,新员工入职会自动发送邮件。但是由于网络波动等原因,会造成再次发送邮件的问题。这时就要考虑幂等性了。那么该如何解决呢。还是我上面举得那个例子。无论多次请求,他只会发送一封邮件。...
2022-08-26 10:57:31
259
原创 快速教你搭建Mycat+Zookeeper实现主键自增
四、将执行文件改名为docker-compose,加上可执行权限,然后执行脚本。第四步,修改sequence_conf.properties。1改为4,说明是使用zookeeper集群。三、准备好Zookeeper需要的文件。四、接下来开始最最重要的Mycat配置。第三步修改myid.properties。第一步,配置schema.xml文件。第二步修改server.xml文件。查看docker 容器,运行中!一、首先准备好Mycat压缩包。...
2022-08-18 15:16:25
946
原创 MySQL数据库的优化
1、where表之间的连接,必须写在其他where条件的前面。2、用EXISTS替代IN,用NOT EXISTS 替代NOT IN
2022-08-15 09:26:47
228
原创 JDK8HashMap底层实现原理
根据当前key的hash值找到它所在的数组的下标,判断所在位置是否存在数据,如果不存在数据,就把键值对包装成Node节点,直接添加到此位置。是链表结构,则采用尾插法,把新节点加入到链表尾部,如果头结点的下一个节点为空,则插入新节点。如果在插入的过程中,链表的长度超过了8,就转为红黑树。对于删除,同样一个索引位置的节点在移除之后达到6个(阈值6),并且该索引位置的节点为红黑树节点。2、检查first节点的hash值和key是否和入参的一样,如果一样则first即为目标节点,直接返回first节点。......
2022-08-13 11:12:50
531
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人