
大厂必问~百万并发
文章平均质量分 95
程序员三木
[优快云全栈领域优秀创作者| 阿里云博客社区专家博主] 作为某云服务提供商的后端开发人员,我将在这里与大家简要分享一些实用的开发小技巧。在我的职业生涯中积累了丰富的经验,希望能通过这个博客与大家交流、学习和成长。
展开
-
[Java 项目亮点] 三层限流设计
Nginx中的模块,可以用于限制处理请求的速率,在许多场合非常有用,特别是当您打算保护系统免受任何可能的DDoS攻击时。这个模块的工作原理是定义一个叫做"速率"的值,这个值是对单位时间内请求的数量进行限制的。比如,你可以设置每分钟只处理100个请求。当某个客户端的请求速率超过这个限制时,Nginx将会把这个请求放入一个队列中,等待处理。如果队列中的请求太多,或者等待的时间太长,那么这个请求就会被丢弃。在配置文件中,你需要使用limit_req_zone指令来定义这个限制。原创 2024-02-24 09:30:00 · 1349 阅读 · 1 评论 -
[Java开发项目亮点] 并发编程项目亮点~自定义监控线程池
包括滑动时间窗口、重试纪元、自定义拒绝策略、线程池状态监控等内容。原创 2024-02-23 07:30:00 · 1498 阅读 · 4 评论 -
[中间件~大厂面试题] 腾讯三面,40亿的QQ号如何去重
如果限制在1GB内存,并且不依赖外部存储或中间件,HashSet都无法满足要求。文件分片和外部排序算法可以适应1GB内存限制,但涉及到额外的文件操作和排序步骤。使用数据库的去重功能可能需要额外的存储开销。Redis作为中间件可以满足内存限制,但需要依赖Redis服务。布隆过滤器是一种适用于大规模数据去重的高效数据结构,可以根据预期插入数量和误判率进行内存估算。这是一种简单粗暴的方法,使用内置的哈希集合数据结构。需要将40亿个QQ号全部加载到内存中,因此可能会超出1GB的内存限制。原创 2023-10-02 14:29:45 · 1622 阅读 · 14 评论