限流系列 令牌桶算法 令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。 典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。 令牌桶算法的原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里
2024-10-17前言 我们在使用IDEA开发Java应用时,基本上都需要进行打断点的操作,这方便我们排查BUG,也方便我们查看设计的是否正确。 不过有时候,我们不希望进入断点,这时候除了点击断点关闭外,有没有更快速的方便关闭所有的断点呢? 如何设置 首先,我们在运行debug模式的时候,切换到Debug的窗口,然后我们点击左侧的两个点的按钮。 然后,在弹出
2024-10-17一,倒排索引 elasticsearch搜索性能高的原因是因为底层的倒排索引技术。 倒排索引中的两个重要概念: 文档(Document):用来搜索的数据,其中的每一条数据就是一个文档,例如一个网页,一个商品信息。 词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的语句就是词条,例如:我是中国人,就可以分为:我,是,中国人,中国,国人这样的
2024-10-17大家好,我是 R 哥。 最近这段时间的面试辅导,我发现一件非常扎心的事情,好几个深圳的兄弟反馈说 机会少、面试难、工资低 ,想找个合适的工作难于登天。 昨天,同一天,有一个深圳的兄弟拿到 offer 了,还有个深圳的兄弟找工作找到快抑郁了,我们还要给他做开导。。 这篇我不打鸡血,也不制造焦虑,仅说说我的个人看法。 R哥我作为一个在 Java 界摸爬滚打
2024-10-17ReentrantReadWriteLock使用场景 ReentrantReadWriteLock 是 Java 的一种读写锁,它允许多个读线程同时访问,但只允许一个写线程访问(会阻塞所有的读写线程)。这种锁的设计可以提高性能,特别是在读操作的数量远远超过写操作的情况下。 在并发场景中,为了解决线程安全问题,我们通常会使用关键字 或者 JUC 包中实现了 Lock 接口的 。但它们
2024-10-17在之前的博文 中,已经介绍了在Spring Security中如何基于formLogin认证、基于HttpBasic认证和自定义用户名和密码。这篇文章,我们将介绍自定义登录界面的登录验证方式。在上一篇博文 中,已经介绍了如何实现Spring Security自定义认证。 v 生成图形验证码 添加maven依赖 <dependen
2024-10-17限流系列 滑动日志-Sliding Log 滑动日志算法,利用记录下来的用户的请求时间,请求数,当该用户的一个新的请求进来时,比较这个用户在这个窗口内的请求数是否超过了限定值,超过的话就拒绝这个请求。 优点: 避免了固定窗口算法在窗口边界可能出现的两倍流量问题 由于是针对每个用户进行统计的,不会引发惊群效应
2024-10-17背景: 下游平台通过消息队列上报监控消息,但是消息量很大,在三分钟左右可以达到百万级别,而对于我的服务来说,我需要对这些消息进行一些业务处理,然后再存入es中。(为了简化场景,以下对于消息的处理只是单纯的存储到es中) 服务启动不到10s,es中写入的数据 青铜方案: MQ只要收到消息,就直接调用es进行存储。 伪代码如下: // 伪代码版本public
2024-10-17前言 我们在使用IDEA开发时,如果是springboot项目的话,一般是用maven来管理我们的依赖的。然后,当我们开发完成之后,就需要打包部署了。 那么,我们应该如何打包呢? 如何打包(jar包) 首先,我们点击右侧的maven侧边栏,然后点击里面的【clean】,先将以前的包清理掉。 然后,我们等待clean完成后,再点击下面的【pa
2024-10-17Path 、 Paths 和 Files 是 Java NIO(New I/O)文件处理系统中的核心组件,它们提供了比传统 java.io.File 更加灵活和高效的文件操作方式。 1. 概述 随着 Java 7 引入 NIO.2(即 Java New I/O 2),文件处理得到了显著改进。 Path 、 Paths
2024-10-17