
面试题
文章平均质量分 55
江南_烟雨.
这个作者很懒,什么都没留下…
展开
-
常见的限流算法,以及实现思路(着重讲解滑动窗口限流)
那么,我们就可以把login接口这个需要做限流的资源名作为key在redis中进行存储,然后value我们现在ZSET这种数据结构,把他的score设置为当前请求的时间戳,member的话建议用请求的详情的hash进行存储(或者UUID、MD5什么的),避免在并发时,时间戳一致出现scode和memberv一样导致被zadd幂等的问题。7、滑动窗口限流:基于一个和固定大小的时间窗口,允许在该时间窗口内的请求数不超过设定的阈值,这个时间窗口随着时间的推移不断滑动,以适应不同时间段内的请求流量。原创 2024-02-18 18:54:25 · 1386 阅读 · 0 评论 -
如何确保消息不被重复消费?或者说如何保证消息的幂等性?
举个例子。比如一个项目中,新员工入职会自动发送邮件。但是由于网络波动等原因,会造成再次发送邮件的问题。这时就要考虑幂等性了。 那么该如何解决呢。还是我上面举得那个例子。无论多次请求,他只会发送一封邮件。...原创 2022-08-26 10:57:31 · 262 阅读 · 0 评论 -
MySQL数据库的优化
1、where表之间的连接,必须写在其他where条件的前面。 2、用EXISTS替代IN,用NOT EXISTS 替代NOT IN原创 2022-08-15 09:26:47 · 231 阅读 · 0 评论 -
JDK8HashMap底层实现原理
根据当前key的hash值找到它所在的数组的下标,判断所在位置是否存在数据,如果不存在数据,就把键值对包装成Node节点,直接添加到此位置。是链表结构,则采用尾插法,把新节点加入到链表尾部,如果头结点的下一个节点为空,则插入新节点。如果在插入的过程中,链表的长度超过了8,就转为红黑树。对于删除,同样一个索引位置的节点在移除之后达到6个(阈值6),并且该索引位置的节点为红黑树节点。2、检查first节点的hash值和key是否和入参的一样,如果一样则first即为目标节点,直接返回first节点。......原创 2022-08-13 11:12:50 · 538 阅读 · 1 评论