
算法
文章平均质量分 92
专业WP网站开发-Joyous
专业WordPress、Shopify开发,Google SEO专家,Google Ads投流,欢迎咨询
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实现接口限流:算法与实践
本文全面剖析接口限流的原理、常见算法、优缺点及实现细节,并以电商订单接口(QPS 10 万,P99 延迟 < 50ms)为例,展示如何设计和实现高效的限流系统。以下基于 Java 21、Spring Boot 3.3、Redis 7.2、MySQL 8.0 实现订单接口限流,部署于 Kubernetes(8 核 CPU、16GB 内存、50 节点)。实现使用 Redisson 提供高效的分布式令牌桶。接口限流通过令牌桶算法,结合 Redis 和 Spring Boot,实现高性能、分布式一致的限流系统。原创 2025-07-10 09:57:45 · 920 阅读 · 0 评论 -
漏桶算法的原理与代码实现
漏桶算法(Leaky Bucket Algorithm)是一种通过模拟漏水的桶来控制数据流量的算法,具有均匀和稳定的流量输出特性。其主要目的是防止系统因为突发的大量请求而被压垮,通过逐步控制请求的处理速率,达到均衡系统负载的目的。漏桶算法中的“漏桶”可以理解为一个用于存储数据的容器,当数据请求到达时被放入漏桶中,桶内的请求会以恒定速率流出,模拟了水从桶底部均匀漏出的情形。漏桶算法是一种经典的限流与流量整形算法,它通过固定速率处理流量,确保系统在高并发环境下能够保持稳定性。原创 2024-10-16 14:59:02 · 1004 阅读 · 0 评论 -
什么东西可以当做GC Root,跨代引用如何处理?
GC Root是Java虚拟机垃圾回收(GC)过程中追踪活动对象的起点。GC Root用于标识存活对象,它们是垃圾回收器在执行标记-清除或其他回收算法时,首先检查的对象。GC Root本身始终被认为是存活的对象,任何直接或间接被GC Root引用的对象也会被视为存活对象。在Java虚拟机中,垃圾回收器通过从GC Root开始遍历对象图(通常采用可达性分析算法),来判断哪些对象是存活的,哪些对象可以被回收。这一过程称为“根可达性分析”。原创 2024-09-28 11:46:00 · 1447 阅读 · 0 评论 -
布隆过滤器的原理及实现应用详解
布隆过滤器(Bloom Filter)是一种用于判断元素是否存在于集合中的数据结构。如果布隆过滤器判断某个元素不存在,则该元素一定不在集合中。如果布隆过滤器判断某个元素存在,则可能存在一定的误判,这意味着元素不一定真的在集合中。布隆过滤器通过牺牲一定的准确性(存在误判率),换取了极低的内存使用和查询效率。原创 2024-09-11 00:52:50 · 1148 阅读 · 0 评论 -
ThreadLocal 在线程池中的内存泄漏问题
是一个非常有用的工具,能够为每个线程提供独立的变量副本,在并发编程中提供了极大的便利。然而,在线程池环境下,由于线程的复用机制,如果不显式清理中的变量,会导致内存泄漏问题。因此,在多线程编程中,尤其是使用线程池时,开发者必须小心使用,并在任务执行完后调用remove()方法来避免潜在的内存泄漏问题。原创 2024-09-05 00:24:18 · 1207 阅读 · 0 评论 -
布隆过滤器的原理详解
它可以用很少的内存快速判断元素是否存在,但有一个特点:它可能会误判某个元素存在,但绝不会误判某个实际存在的元素为不存在。它具有极高的查询效率和较低的内存占用,尽管存在一定的误判率,但在许多实际场景中,这种误判率是可以接受的。:布隆过滤器可能会误判某个实际不在集合中的元素为存在,因为不同元素的哈希结果可能会映射到相同的位,从而造成误判。将布隆过滤器放在缓存和数据库之间,查询时先通过布隆过滤器判断,如果布隆过滤器认为不存在,则直接返回,而不去查询数据库。如果有任意一个位置上的位为0,则可以确定这个元素不存在。原创 2024-09-05 00:12:05 · 939 阅读 · 0 评论